Xpath与BeautifulSoup一起使用

Xpath与BeautifulSoup一起使用

Xpath与BeautifulSoup一起使用

  当谈到网络抓取时,我们通常对两个主要步骤感兴趣:收集原始数据(例如 HTML 文档),然后将所需数据解析成我们可以在业务逻辑中消化的东西。

  在本文中,我们将了解如何将 Xpath 与 BeautifulSoup 一起使用。 使用 lxml 从网页上的元素获取数据需要使用 Xpaths。

Xpath与BeautifulSoup一起使用

安装所需模块

  首先,我们需要在我们的计算机上安装所有这些模块。

  • 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
查找页面上特定元素的XPath

  使用方法

  • 导入模块
  • 从网页中抓取内容
  • 现在要使用Xpath,我们需要将soup 对象转换为etree 对象,因为BeautifulSoup 默认不支持使用XPath。
  • 但是,lxml 支持 XPath 1.0。 它有一个 BeautifulSoup 兼容模式,它会尝试像 Soup 那样解析损坏的 HTML。
  • 要复制元素的 XPath,我们需要检查元素,然后右键单击它的 HTML 并找到 XPath。
  • 在此之后,您可以使用 lxml 模块的 etree 类中可用的 .xpath 方法来解析相关元素内的值。

  注意: 如果 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结合起来使用。

  推荐:BeautifulSoup教程

给文章评分

ThemeForest 模板套件
可视化创建WordPress网站
siteground主机

发表评论

您的电子邮箱地址不会被公开。

Scroll to Top