python3爬虫实践(七)——xpath介绍

xpath 介绍

1、什么是 xpath

  • xpath(XML Path Language)是一门在 XML 和 HTML 文档中查找信息的语言,可用来在 XML 和 HTML 文档中对元素和属性进行遍历。

2、xpath 开发工具

  • Chrome 插件 XPath Helper
  • Firefox 插件 XPath Checker

3、xpath 语法

  • 选取节点: xpath 使用路径表达式来选取 XML 文档中的节点或者节点集。这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似。
表达式描述示例结果
nodename选取此节点的所有节点bookstore选取 bookstore 下所有的子节点
/如果是在最前面,代表从根节点选取。否则选择某节点下的某个节点/bookstore选取根元素下所有的 bookstore 节点
//从全局节点中选择节点,随便在哪个位置//book从全局节点中找到所有的 book 节点
@选取某个节点的属性//book[@price]选择所有拥有 price 属性的 book 节点
  • 谓语: 谓语用来查找某个特定的节点或者包含某个指定的值的节点,被嵌在方括号中。在下面表格中,我们列出了带有谓语的一些路径表达式,以及表达式的结果:
路径表达式描述
/bookstore/book[1]选取 bookstore 下的第一个 book 元素
/bookstore/book[last()]选取 bookstore 下的倒数第二个 book 元素
bookstore/book[position()< 3]选取 bookstore 下的前面两个 book 元素
//book[@price]选取拥有 price 属性的吧 book 元素
//book[@price=10]选取所有属性 price 等于10的 book 元素
  • 有时候某个属性中包含了很多值,那么可以使用 contains 方法(模糊匹配),代码示例如下:
# 下面的 job_detail 只是属性 class 值中的一个
//div[contains(@class,'job_detail')]
  • 通配符:
通配符描述示例结果
*匹配任意节点/bookstore/*选取 bookstore 下的所有子元素
@*匹配节点中的任何属性//book[@*]选取所有带属性的 book 元素
  • 选取多个路径: 通过在路径表达式中使用 “|” 运算符,可以选取若干个路径。代码示例如下:
# 选取 bookstore 元素下所有的 book 元素以及 book 元素下所有的 title 元素
//bookstore/book | //book/title
  • 运算符:
运算符描述实例返回值
|计算两个节点集//book | //cd返回所有拥有 book 和 cd 元素的节点集
+加法6 + 410
-减法6 - 42
*乘法6 * 424
div除法8 div 42
=等于price = 9.80如果 price 等于9.80,则返回 true,如果 price 是9.90,则返回 false
!=不等于price != 9.80如果 price 等于9.90,则返回 true,如果 price 是9.80,则返回 false
<小于price < 9.80如果 price 等于9.00,则返回 true,如果 price 是9.90,则返回 false
<=小于等于price <= 9.80如果 price 等于9.00,则返回 true,如果 price 是9.90,则返回 false
>大于price > 9.80如果 price 等于9.90,则返回 true,如果 price 是9.80,则返回 false
>=大于等于price >= 9.80如果 price 等于9.90,则返回 true,如果 price 是9.00,则返回 false
orprice = 9.80 or price = 9.70如果 price 等于9.80,则返回 true,如果 price 是9.00,则返回 false
andprice > 9.00 and price < 9.70如果 price 等于9.60,则返回 true,如果 price 是9.80,则返回 false
mod计算除法的余数5 mod 2
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 使用pyquery可以通过CSS选择器或XPath表达式来查找HTML文档中的元素,从而提取所需的数据。具体步骤如下: 1. 导入pyquery库:`from pyquery import PyQuery as pq` 2. 加载HTML文档:`doc = pq(html)` 3. 使用CSS选择器或XPath表达式查找元素:`doc('selector')`或`doc.xpath('xpath_expression')` 4. 提取元素的文本内容、属性值等数据:`element.text()`或`element.attr('attribute_name')` 例如,假设我们要从以下HTML文档中提取所有链接的URL地址: ```html <html> <body> <a href="https://www.baidu.com">百度</a> <a href="https://www.google.com">谷歌</a> <a href="https://www.bing.com">必应</a> </body> </html> ``` 可以使用以下代码实现: ```python from pyquery import PyQuery as pq html = ''' <html> <body> <a href="https://www.baidu.com">百度</a> <a href="https://www.google.com">谷歌</a> <a href="https://www.bing.com">必应</a> </body> </html> ''' doc = pq(html) links = doc('a') # 使用CSS选择器查找所有<a>元素 for link in links: url = pq(link).attr('href') # 提取<a>元素的href属性值 print(url) ``` 输出结果为: ``` https://www.baidu.com https://www.google.com https://www.bing.com ``` ### 回答2: Python爬虫是目前互联网上非常常见的一种数据采集方式,通过Python程序代码模拟人类浏览器行为,从目标网站上自动抓取所需数据。爬虫数据提取方式有很多种,其中比较流行的一种方式就是使用pyquery查找元素。 pyquery是Python的一种强大的解析html和xml文档的库,它采用了jQuery风格的语法,对于提取数据非常方便快捷。下面我们来介绍pyquery的用法。 1. 安装pyquery库:使用pip命令可以很方便地安装pyquery库,如下所示: ``` pip install pyquery ``` 2. 导入pyquery库:在Python程序代码中导入pyquery库,如下所示: ``` from pyquery import PyQuery as pq ``` 3. 初始化pyquery对象:通过url或html文本初始化pyquery对象,如下所示: 通过url初始化: ``` doc = pq(url='http://www.baidu.com') ``` 通过html文本初始化: ``` html = ''' <html> <head> <title>python爬虫数据提取方式——使用pyquery查找元素</title> </head> <body> <div class="content" id="content-div"> <p>这是一个示例文本</p> </div> </body> </html> ''' doc = pq(html) ``` 4. 查找元素:使用find、children、siblings等方法查找元素,如下所示: 查找元素: ``` p = doc('p') ``` 查找元素属性值: ``` div_id = doc('#content-div').attr('id') ``` 5. 获取元素内容:使用text、html方法获取元素内容,如下所示: 获取文本内容: ``` p_text = p.text() ``` 获取html内容: ``` div_html = doc('#content-div').html() ``` 总之,pyquery是Python爬虫数据提取中很实用的一种工具,通过它可以快速方便地获取到所需数据。在使用pyquery时,需要了解基础的HTML语法,并掌握pyquery中的各种查找、遍历和属性操作方法。 ### 回答3: Python爬虫数据提取方式之一是使用pyquery查找元素。Pyquery是一个Python库,它是在jQuery的基础上构建的,可以用来解析和操作HTML文档。使用Pyquery可以方便快捷地从网页中提取需要的数据。 使用Pyquery查找元素的过程分为以下几步: 第一步是获取网页源代码。通常情况下,可以使用Python Requests库获取网页源代码,并将其保存为一个字符串类型的变量。 第二步是使用Pyquery构建doc对象。使用Pyquery的from_string()方法可以将网页源代码转换为Pyquery类型的对象。 第三步是通过选择器选取元素。类似于使用jQuery选择器选取元素一样,使用Pyquery的find()方法和eq()方法可以选取需要的元素。 第四步是获取元素的属性或文本值。使用Pyquery的attr()方法可以获取元素的属性值,text()方法可以获取元素的文本值。 最后是对获取的数据进行处理和存储。可以使用Python的各种数据处理和存储工具对获取的数据进行处理和存储,例如使用Pandas库进行数据分析和处理,使用MySQL或MongoDB等数据库进行数据存储。 总之,使用Pyquery查找元素是Python爬虫重要的数据提取方式之一,通过选取网页中需要的元素,并获取其属性或文本值,可以快速而准确地抓取数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值