首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

爬虫课程(八)|豆瓣:十分钟学会使用XPath选择器提取需要的元素

前面我们在写爬取豆瓣读书内容示例中提到了XPath,本文就详细介绍下在爬虫中如何使用XPath选择器,掌握本文中的内容,将解决98%在爬虫中利用XPath提取元素的需求。...三、XPath的语法 XPath 使用路径表达式在 XML 和HTML文档中选取节点节点是通过沿着路径或者 step 来选取的。...article的div元素下的text /div/* 选取属于div元素的所有子节点 //* 选取所有元素 //div[@*] 选取所有带属性的div元素 //div/a|//div/p 选取所有...获取豆瓣读书的书籍标题 我们这里通过3种方法来提取这个书籍的标题。 1)方法一:从html开始一层一层往下找,使用Firefox浏览器自带的复制XPath功能使用的就是这个方式。...2)方法二:找到特定的id元素,因为一个网页中id是唯一的,所以再基于这个id往下找也是可以提取到想要的使用Chrome浏览器自带的复制XPath功能使用的就是这个方式。

1.9K70
您找到你想要的搜索结果了吗?
是的
没有找到

Selenium系列5-XPath路径表达式

Xpath介绍 XPath 使用路径表达式在 XML 文档中进行导航 XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。...XQuery 和 XPointer 均构建于 XPath 表达式之上。XQuery 1.0 和 XPath 2.0 共享相同的数据模型,支持相同的函数和运算符。...Rowling (元素节点) lang="en" (属性节点) 基本(或称原子,Atomic value) 基本是无父或者无子的节点 上面XML文档中基本的例子: J K....XPath 使用路径表达式在 XML 文档中选取节点。...下面列出了最有用的路径表达式: 表达式 描述 nodename 选取此节点的所有子节点 / 从根节点选取(取子节点) // 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置(取子孙节点) .

2.2K20

Python:非结构化数据-XPath

简介 XPath 全称为 Xml Path Language,即 Xml 路径语言,是一种在 Xml 文档中查找信息的语言。它提供了非常简洁的路径选择表达式,几乎所有的节点定位都可以用它来选择。...XPath 使用路径表达式在 XML 文档中选取节点。...选取当前节点的父节点 @ 选取属性 nodeName 选取此节点的所有子节点 在下面的表格中,我们已列出了一些路径表达式以及表达式的结果: 路径表达式 结果 /bookstore 选取根元素 bookstore...选取未知节点XPath 通配符可用来选取未知的 XML 元素。 通配符 描述 * 匹配任何元素节点。 @* 匹配任何属性节点。...cn 字符串的Person节点 Xpath表达式:/Root//Person[contains(Blog,'cn')] 2.查询所有Blog节点中带有 cn 字符串并且属性ID中有01的Person

2.2K31

Python xpath表达式如何实现数据处理

XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。...使用chrome插件选择标签时候,选中时,选中的标签会添加属性class=”xh-highlight” 下面列出了最有用的表达式: 表达式 描述 nodename 选中该元素。...//book/title/@lang 选择所有的book下面的title中的lang属性。 //book/title/text() 选择所有的book下面的title的文本。...下的head下的link标签的href /html/head/link/@href 1.2 查找特定的节点 路径表达式 结果 //title[@lang=”eng”] 选择lang属性为eng的所有title...,返回的是element对象,可以继续使用xpath方法,对此我们可以在后面的数据提取过程中:先根据某个标签进行分组,分组之后再进行数据的提取 li_list = html.xpath("//li[@class

62531

一文入门XPath

是一种查询语言 在XML(Extensible Markup Language)和HTML的树状结构中寻找节点 XPATH是一种根据‘地址’来‘寻找人’的语言 语法 XPath 使用路径表达式来选取 XML.../ 从根节点选取。 // 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。...通配符 XPath 通配符可用来选取未知的 XML 元素 通配符 描述 匹配任何元素节点 @* 匹配任何属性节点。...//title@* 选取所有带有属性的 title 元素。 选取不同路径 通过在路径表达式中使用“|”运算符,您可以选取若干个路径。...XPath运算符 XPath 表达式可返回节点集、字符串、逻辑以及数字 下面列出了可用在 XPath 表达式中的运算符: 运算符 描述 实例

82150

一文入门XPath

是一种查询语言 在XML(Extensible Markup Language)和HTML的树状结构中寻找节点 XPATH是一种根据‘地址’来‘寻找人’的语言 语法 XPath 使用路径表达式来选取 XML...// 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。 . 选取当前节点。 … 选取当前节点的父节点。 @ 选取属性。...//@lang 选取名为 lang 的所有属性。 通配符 XPath 通配符可用来选取未知的 XML 元素 通配符 描述 * 匹配任何元素节点 @* 匹配任何属性节点。...//title[@lang=‘eng’] 选取所有 title 元素,且这些元素拥有为 eng 的 lang 属性。...XPath运算符 XPath 表达式可返回节点集、字符串、逻辑以及数字 下面列出了可用在 XPath 表达式中的运算符: 运算符 描述 实例 返回 | 计算两个节点集 //book | //cd 返回所有拥有

71610

Python总结-----爬虫

因此,对 XPath 的理解是很多高级 XML 应用的基础。 说白了 Xpath 使用路径表达式来选取 XML 文档中的节点或者节点集。...选取节点 XPath 使用路径表达式在 XML 文档中选取节点节点是通过沿着路径或者 step 来选取的。 下面列出了最有用的路径表达式: 表达式 描述 nodename 选取此节点的所有子节点。.../ 从根节点选取。 // 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。 . 选取当前节点。 .. 选取当前节点的父节点。 @ 选取属性。...//@lang 选取名为 lang 的所有属性。 ---- 谓语(Predicates) 谓语用来查找某个特定的节点或者包含某个指定的节点。 谓语被嵌在方括号中。...---- 选取未知节点 XPath 通配符可用来选取未知的 XML 元素。 通配符 描述 * 匹配任何元素节点。 @* 匹配任何属性节点。 node() 匹配任何类型的节点

1.5K10

Python解析库lxml与xpath用法总结

下面列出了最有用的路径表达式: 表达式 描述 nodename 选取此节点的所有子节点。 / 从根节点选取。 // 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。 . 选取当前节点。...选取当前节点的父节点。 @ 选取属性。 在下面的表格中,我们已列出了一些路径表达式以及表达式的结果: 路径表达式 结果 bookstore 选取 bookstore 元素的所有子节点。...5.xpath运算符 下面列出了可用在 XPath 表达式中的运算符: 运算符 描述 实例 返回 | 计算两个节点集 //book | //cd 返回所有拥有 book 和 cd 元素的节点集 + 加法...选取当前节点的父节点 @ 选取属性 html = lxml.etree.HTML(text) #使用text构造一个XPath解析对象,etree模块可以自动修正HTML文本 html = lxml.etree.parse...a节点的href属性 result = html.xpath('//li[contains(@class,"li")]/a/text()) #当li的class属性有多个时,需用contains函数完成匹配

1.3K10

Python解析库lxml与xpath用法总结

下面列出了最有用的路径表达式: 表达式 描述 nodename 选取此节点的所有子节点。 / 从根节点选取。 // 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。 . 选取当前节点。...选取当前节点的父节点。 @ 选取属性。 在下面的表格中,我们已列出了一些路径表达式以及表达式的结果: 路径表达式 结果 bookstore 选取 bookstore 元素的所有子节点。...5.xpath运算符 下面列出了可用在 XPath 表达式中的运算符: 运算符 描述 实例 返回 | 计算两个节点集 //book | //cd 返回所有拥有 book 和 cd 元素的节点集 + 加法...选取当前节点的父节点 @ 选取属性 html = lxml.etree.HTML(text) #使用text构造一个XPath解析对象,etree模块可以自动修正HTML文本 html = lxml.etree.parse...a节点的href属性 result = html.xpath('//li[contains(@class,"li")]/a/text()) #当li的class属性有多个时,需用contains函数完成匹配

96710

Python爬虫基础讲解(七):xpath的语法

xpath语法 XPath使用路径表达式来选取XML文档中的节点或者节点集。这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似。...下面列出了最有用的表达式: 在下面的表格中,我们已列出了一些路径表达式以及表达式的结果: 选取未知节点 在下面的表格中,我们列出了一些路径表达式,以及这些表达式的结果: 案例 import parsel.../li/a').extract() #提取当前节点下的标签 # 2、4选取当前节点的父节点,获取父节点的class属性 result = data.xpath(' //a') result4...extract() #2、8获取第五个标签的href属性 result = data. xpath(' / /1i[5]/a/@href').extract(#了解模糊查询 result = data.xpath...xpath的重点语法根据属性获取节点:标签[@属性=’’] xpath中获取节点的文本:text ) xpath的获取节点属性:@属性

86150

xpath语法大全

XPath 节点 ---- XPath 术语 节点XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点。XML 文档是被作为节点树来对待的。...Rowling (元素节点) lang=”en” (属性节点) 基本(或称原子,Atomic value) 基本是无父或无子的节点。 基本的例子: J K....XPath 使用路径表达式在 XML 文档中选取节点。...// 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。 . 选取当前节点。 .. 选取当前节点的父节点。 @ 选取属性。...//title[@*] 选取所有带有属性的 title 元素。 ---- 选取若干路径 通过在路径表达式中使用”|”运算符,您可以选取若干个路径。

51010

结构标记处理工具(一)、xml模块

只不过字典、列表是python解释器在内存中使用的一种数据结构,而xml是文件这种载体中的一种数据结构。 标签节点(Element):包含名字tag,属性attrib, text。...,和字典中的items一样,内容都是健对 iter 在根据节点名称寻找所有指定的节点返回一个迭代器 iterfind 获取所有指定的节点...,放在一个迭代器中 itertext 在子孙中根据节点名称寻找所有指定的节点的内容,返回一个迭代器 keys 获取当前节点的所有属性的...// 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。 . 选取当前节点。 .. 选取当前节点的父节点。 @ 选取属性。...XPath 运算符 下面列出了可用在 XPath 表达式中的运算符: 运算符 描述 实例 返回 | 计算两个节点集 //book | //cd 返回所有拥有 book 和 cd 元素的节点集 + 加法

2.9K20

软件测试|selenium xpath定位

,则使用单引号,'$'可更换为'$$'xpath节点xpath中,有七种类型的节点(node):元素、属性、文本、命名空间、处理指令、注释以及文档节点(或称为根节点)在开始xpath语法前,我们需要简单了解这几种节点...color='red'>xpath使用路径表达式描述目标节点与网页头的关系绝对路径 & 相对路径路径表达式有两种结构,分别为:绝对路径:从根节点/html开始往下,一层层的表示出来直到需要的节点为止...\节点@属性 属性 //input@id 选择所有\节点且该节点带id属性@...属性='属性' 比较属性 //input@id='kw' 选择所有\节点且该节点id属性为'kw'text() 比较节点文本...,实质都是xpath提供的函数,本篇文章只列出了常用函数根据W3C标准,第一个节点编号应该是1,但在IE5及更高版本中第一个节点编号是0xpath轴(axis)轴:表示所选节点与当前节点之间的树关系,用来筛选对于当前节点有相同关系的一类节点轴格式

82610

Python:XPath与lxml类库

) Chrome插件 XPath Helper Firefox插件 XPath Checker 选取节点 XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。...下面列出了最常用的路径表达式: 表达式 描述 nodename 选取此节点的所有子节点。 / 从根节点选取。 // 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。 . 选取当前节点。...选取当前节点的父节点。 @ 选取属性。 在下面的表格中,我们已列出了一些路径表达式以及表达式的结果: 路径表达式 结果 bookstore 选取 bookstore 元素的所有子节点。...//@lang 选取名为 lang 的所有属性。 谓语(Predicates) 谓语用来查找某个特定的节点或者包含某个指定的节点,被嵌在方括号中。...选取未知节点 XPath 通配符可用来选取未知的 XML 元素。 通配符 描述 * 匹配任何元素节点。 @* 匹配任何属性节点。 node() 匹配任何类型的节点

1.5K30

selenium xpath定位

中,Ctrl+F搜索栏输入xpath表达式 方法2:在浏览器开发者模式的console中,按如下格式可验证表达式 $x("xpath表达式") # 表达式中存在引号,则使用单引号,'$'可更换为'$...$' xpath节点xpath中,有七种类型的节点(node):元素、属性、文本、命名空间、处理指令、注释以及文档节点(或称为根节点) 在开始xpath语法前,我们需要简单了解这几种节点节点名称...xpath使用路径表达式描述目标节点与网页头的关系 绝对路径 & 相对路径 路径表达式有两种结构,分别为: 绝对路径:从根节点/html开始往下,一层层的表示出来直到需要的节点为止...属性 @属性='属性' 比较属性 //input@id='kw' 选择所有\节点且该节点id属性为'kw' text()...,实质都是xpath提供的函数,本篇文章只列出了常用函数 根据W3C标准,第一个节点编号应该是1,但在IE5及更高版本中第一个节点编号是0 xpath轴(axis) 轴:表示所选节点与当前节点之间的树关系

1.1K00

什么是XPath

XPath节点XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点。XML 文档是被作为节点树来对待的。树的根被称为文档节点或者根节点。...XPath语法 使用方式: 使用//获取整个页面当中的元素,然后写标签名,然后在写谓语进行提取,比如: //title[@lang='en'] //标签[@属性名='属性'] # 如果想获取html...标签下的body标签 html/body 谓语:谓语用来查找某个特定的节点或者包含某个指定的节点,被嵌在方括号中。...在下面的表格中,列出了带有谓语的一些路径表达式 通配符 只要book标签带有属性都可以通过//book[@*]匹配到 选取多个路径 通过在路径表达式中使用|运算符,可以选取若干个路径 # 选取所有book...,当然也要视情况而定 contains:有时候某个属性中包含了多个,那么可以使用contains函数,示例如下: //title[contains(@lang,'en')] 3.

1.7K20

软件测试人工智能|详解selenium xpath定位

2:在浏览器开发者模式的console中,按如下格式可验证表达式$x("xpath表达式") # 表达式中存在引号,则使用单引号,'$'可更换为'$$'xpath节点xpath中,有七种类型的节点...\节点@属性 属性 //input@id 选择所有\节点且该节点带id属性@...属性='属性' 比较属性 //input@id='kw' 选择所有\节点且该节点id属性为'kw'text() 比较节点文本...,实质都是xpath提供的函数,本篇文章只列出了常用函数根据W3C标准,第一个节点编号应该是1,但在IE5及更高版本中第一个节点编号是0xpath轴(axis)轴:表示所选节点与当前节点之间的树关系,用来筛选对于当前节点有相同关系的一类节点轴格式...略总结XPath是一个强大的工具,但也需要谨慎使用,因为Xpath方法查找元素较慢,一般情况下优先选择是其他定位方法,希望本文能够帮到大家!

21331
领券