Xpath与BeautifulSoup一起使用
当谈到网络抓取时,我们通常对两个主要步骤感兴趣:收集原始数据(例如 HTML 文档),然后将所需数据解析成我们可以在业务逻辑中消化的东西。
在本文中,我们将了解如何将 Xpath 与 BeautifulSoup 一起使用。 使用 lxml 从网页上的元素获取数据需要使用 Xpaths。
安装所需模块
首先,我们需要在我们的计算机上安装所有这些模块。
- BeautifulSoup: 我们的主要模块包含一个通过 HTTP 访问网页的方法。
pip install bs4
- lxml: 用python语言处理网页的帮助库。
pip install lxml
- requests: 使发送 HTTP 请求的过程完美无缺。函数的输出
pip install requests
从网页上的元素获取数据 lxml 需要使用 Xpaths 。
推荐:使用BeautifulSoup从HTML中抓取网址链接
使用 XPath
Xpath,全称是XML Path Language,即XML路径语言,它是一门在XML文档中查找信息的语言。它最初是用来搜索XML文档的,但是同样适用于HTML文档的搜索。
XPath 的工作方式与传统文件系统非常相似。
查找页面上特定元素的XPath
- 右键单击页面中的元素,然后单击 检查。
- 右键单击 元素 选项卡中的元素。
- 单击复制 XPath 。
使用方法
- 导入模块
- 从网页中抓取内容
- 现在要使用Xpath,我们需要将soup 对象转换为etree 对象,因为BeautifulSoup 默认不支持使用XPath。
- 但是,lxml 支持 XPath 1.0。 它有一个 BeautifulSoup 兼容模式,它会尝试像 Soup 那样解析损坏的 HTML。
- 要复制元素的 XPath,我们需要检查元素,然后右键单击它的 HTML 并找到 XPath。
- 在此之后,您可以使用 lxml 模块的 etree 类中可用的 .xpath 方法来解析相关元素内的值。
注意: 如果 XPath 没有为您提供所需的结果,请复制完整的 XPath 而不是 XPath,其余的其他步骤将是相同的。
示例:
from bs4 import BeautifulSoup
from lxml import etree
import requests
URL = "https://www.pythonthree.com/how-to-start-learning-python/"
HEADERS = ({'User-Agent':
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 \
(KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36',\
'Accept-Language': 'en-US, en;q=0.5'})
webpage = requests.get(URL, headers=HEADERS,)
soup = BeautifulSoup(webpage.content, "html.parser")
dom = etree.HTML(str(soup))
print(dom.xpath('//*[@id="Python4"]/font')[0].text)
输出:
四、Python标准库
总结
以上是晓得博客为你介绍的Xpath与BeautifulSoup一起使用的全部内容,上面给出了的示例展示了如何将 Xpath 与 Beautifulsoup结合起来使用。
Claude、Netflix、Midjourney、ChatGPT Plus、PS、Disney、Youtube、Office 365、多邻国Plus账号购买,ChatGPT API购买,优惠码XDBK,用户购买的时候输入优惠码可以打95折