2023-11-14
网络爬虫中,BeautifulSoup是一个非常有用的库,可以帮助你获取HTML内容,并帮你精准定位想要的元素。
使用方法如下:
from bs4 import BeautifulSoup
import requests
# 假设这是我们要解析的网页URL
url = 'http://example.com'
# 使用requests库获取网页内容
response = requests.get(url)
content = response.content #或者.text
# 使用BeautifulSoup和lxml解析器解析HTML内容
soup = BeautifulSoup(content, 'lxml')
# 查找所有的<a>标签
links = soup.find_all('a')
# 打印每个链接的href属性
for link in links:
print(link.get('href'))
select 方法的基本语法:
soup.select("selector")
常用的CSS选择器:
(段落)元素。
例子分析:
dom = BS(content, features="lxml")
dom.select('table tr table tr.athing')):
在CSS选择器语法中,table tr table tr.athing 代表了一系列嵌套规则,用于选择HTML元素。让我们分解这个选择器:
table: 这代表选择所有的table元素。
table tr: 这里的空格是一个后代选择器。它意味着选择所有位于table元素内部的tr元素(即表格的行)。
再次的 table tr: 这一部分再次应用同样的规则,表示选择位于tr元素内部的另一个table元素的所有tr行。这表明我们正在处理嵌套的表格结构。
.athing: 这是一个类选择器,表示选择具有类名athing的元素。
将这些组合起来,table tr table tr.athing 的意思是:在一个table内部的tr元素内部,找到另一个table,然后在这个内部table中找到所有具有类名athing的tr行。这通常用于处理复杂且嵌套的表格结构,在数据抓取和网页分析时特别有用。