python爬虫bs4、xpath
时间: 2023-10-03 19:02:51 浏览: 191
Python爬虫中的bs4和xpath是两种常用的数据提取工具。
bs4(Beautiful Soup 4)是一个基于Python的库,用于解析HTML和XML文档。它能够帮助我们从网页中提取数据并进行处理。bs4提供了一些简单且易于使用的方法,例如通过标签名、类名、属性等进行查找和筛选数据。
下面是一个简单的使用bs4进行数据提取的例子:
```python
from bs4 import BeautifulSoup
import requests
# 发送HTTP请求获取页面内容
url = "http://example.com"
response = requests.get(url)
html_content = response.content
# 使用bs4解析页面内容
soup = BeautifulSoup(html_content, 'html.parser')
# 提取数据
title = soup.title.text
print("网页标题:", title)
# 查找某个标签并获取其文本内容
h1 = soup.find("h1")
print("h1标签内容:", h1.text)
# 查找所有的链接并输出链接文本和URL
links = soup.find_all("a")
for link in links:
print("链接文本:", link.text)
print("链接URL:", link["href"])
```
另一方面,XPath是一种用于选择XML文档中节点的语言。在爬虫中,我们可以使用XPath来从HTML或XML文档中提取数据。XPath提供了强大且灵活的选择器,可以使用路径表达式来定位节点。
下面是一个使用XPath进行数据提取的示例:
```python
import requests
from lxml import etree
# 发送HTTP请求获取页面内容
url = "http://example.com"
response = requests.get(url)
html_content = response.content
# 使用lxml解析页面内容
tree = etree.HTML(html_content)
# 提取数据
title = tree.xpath("//title/text()")[0]
print("网页标题:", title)
# 查找某个标签并获取其文本内容
h1 = tree.xpath("//h1/text()")[0]
print("h1标签内容:", h1)
# 查找所有的链接并输出链接文本和URL
links = tree.xpath("//a")
for link in links:
link_text = link.xpath("text()")[0]
link_url = link.xpath("@href")[0]
print("链接文本:", link_text)
print("链接URL:", link_url)
```
以上就是使用bs4和XPath进行数据提取的示例代码。希望能帮助到你!如有需要,请随时追问。
阅读全文