如何使用BeautifulSoup在Python中解析网页?
BeautifulSoup是Python的一个第三方库,用于解析HTML和XML文档。它可以通过区别的解析器解析文档,如Python尺度库中的html.parser和lxml库中的lxml.parser。利用BeautifulSoup可以愈加有效地处置HTML和XML文档,便利快速地挠取所需信息。
解析HTML文档在利用BeautifulSoup解析HTML文档之前,需要安拆BeautifulSoup库。能够通过pip号令停止安拆:
pip install beautifulsoup4接下来,我们需要引进BeautifulSoup库,并将HTML文档做为参数传进到BeautifulSoup对象中:
from bs4 import BeautifulSoup
html_doc = """
The Dormouse's storyThe Dormouse's story
Once upon a time there were three little sisters; and their names wereElsie,LacieandTillieand they lived at the bottom of a well.
...
"""
soup = BeautifulSoup(html_doc, 'html.parser')
如许,我们就能够利用BeautifulSoup的各类 *** 往解析HTML文档了。
标签抉择器BeautifulSoup给予了一系列的标签抉择器,能够按照标签名、类名、id等属性抉择标签。例如,我们能够利用以下 *** 获取HTML文档中的title标签:
soup.title那将返回文档中第一个title标签的内容。若是想要获取所有的title标签,能够利用以下 *** :
soup.find_all('title')那将返回一个列表,包罗所有的title标签。除了标签名,还能够按照类名和id属性来抉择标签。例如:
soup.find_all('p', class_='story')
soup.find_all('a', id='link3')
那将返回所有class为story或id为link3的p标签和a标签。
CSS抉择器除了标签抉择器,BeautifulSoup还撑持CSS抉择器,能够愈加便利地抉择标签。例如,我们能够利用以下 *** 获取所有class为story的p标签:
soup.select('p.story')那将返回一个列表,包罗所有class为story的p标签。
属性获取在获取标签时,还能够获取标签的属性。例如,我们能够利用以下 *** 获取第一个a标签的href属性:
soup.a['href']那将返回第一个a标签的href属性值。若是想要获取所有的a标签的href属性,能够利用以下 *** :
for link in soup.find_all('a'):
print(link.get('href'))
那将打印出所有的a标签的href属性值。
总结利用BeautifulSoup可以愈加便利快速地解析HTML和XML文档,便利获取所需信息。