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

Python爬虫之XPath语法和lxml库的用法

XPath 去找我们 HTML 中的一些具体的东西 节点关系 在 XPath 中,有七种类型的节点元素、属性、文本、命名空间、处理指令、注释以及文档节点(或称为根节点) 再举个栗子 ...Parent) 每个元素以及属性都有一个 url元素是 loc、lastmod、changefreq以及 priority元素 第二个:(Children) 元素节点可有零个、一个或多个子 loc...元素都是url元素的同胞 第四个:先辈(Ancestor) 某节点,等等 loc元素的先辈是 url元素和 urlset元素 第五个:后代(Descendant) 某个节点,等等...选取当前节点节点 @ 选取属性 实例 路径表达式 结果 urlset 选取 urlset 元素的所有节点 /urlset 选取根元素 urlset urlset/url 选取属于 urlset...的内容以及元素 a 的 href 属性,F12 去看代码找这个属性 div 的 id 属性,下面的元素 h3 的内容,直接利用 text 方法来获取元素内容,然后输出 这里的元素层级关系必须按顺序写好

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

五、XML与xpath--------------爬取美女图片 先用一个小实例开头吧(爬取贴吧每个帖子的图片)XML 和 HTML 的区别XML文档示例

(Parent) 每个元素以及属性都有一个。 下面有的XML例子中,book 元素是 title、author、year 以及 price 元素。 2....(Children) 元素节点可有零个、一个或多个子。 在下面的例子中,title、author、year 以及 price 元素都是 book 元素。 3....同胞(Sibling) 拥有相同的节点 在下面的例子中,title、author、year 以及 price 元素都是同胞。 4. 先辈(Ancestor) 某节点,等等。...在下面的例子中,title 元素的先辈是 book 元素和 bookstore 元素。 5. 后代(Descendant) 某个节点,等等。...选取当前节点节点。 @ 选取属性。 路径表达式 结果 /bookstore/book[1] 选取属于 bookstore 元素的第一个 book 元素

1.3K40

Python解析库lxml与xpath用法总结

XPath 是 XSLT 中的主要元素 。XPath 是一个 W3C 标准 。 2.xpath节点 xpath有七种类型的节点元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点。...ancestor-or-self 选取当前节点的所有先辈(、祖父等)以及当前节点本身。 attribute 选取当前节点的所有属性。 child 选取当前节点的所有元素。...mod 计算除法的余数 5 mod 2 1 好了,xpath的内容就这么多了。...下面再来lxml的解析规则: 表达式 描述 nodename 选取此节点的所有节点 / 从当前节点选取直接节点 // 从当前节点选取子孙节点 . 选取当前节点 .....选取当前节点节点 @ 选取属性 html = lxml.etree.HTML(text) #使用text构造一个XPath解析对象,etree模块可以自动修正HTML文本 html = lxml.etree.parse

1.3K10

Python解析库lxml与xpath用法总结

XPath 是 XSLT 中的主要元素 。XPath 是一个 W3C 标准 。 2.xpath节点 xpath有七种类型的节点元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点。...ancestor-or-self 选取当前节点的所有先辈(、祖父等)以及当前节点本身。 attribute 选取当前节点的所有属性。 child 选取当前节点的所有元素。...mod 计算除法的余数 5 mod 2 1 好了,xpath的内容就这么多了。...下面再来lxml的解析规则: 表达式 描述 nodename 选取此节点的所有节点 / 从当前节点选取直接节点 // 从当前节点选取子孙节点 . 选取当前节点 .....选取当前节点节点 @ 选取属性 html = lxml.etree.HTML(text) #使用text构造一个XPath解析对象,etree模块可以自动修正HTML文本 html = lxml.etree.parse

94410

Python3网络爬虫实战-28、解析库

,并且还自动添加了 body、html 节点。...节点 我们通过 / 或 // 即可查找元素节点或子孙节点,加入我们现在想选择 li 节点所有直接 a 节点,可以这样来实现: from lxml import etree html = etree.parse...节点 我们知道通过连续的 / 或 // 可以查找节点或子孙节点,那假如我们知道了节点怎样来查找节点呢?在这里我们可以用 .. 来获取节点。....html">fifth item 其中一个节点因为自动修正,li 节点的尾标签添加的时候换行了,所以提取文本得到的唯一结果就是 li 节点的尾标签和 a 节点的尾标签之间的换行符。...节点轴选择 XPath 提供了很多节点轴选择方法,英文叫做 XPath Axes,包括获取元素、兄弟元素元素、祖先元素等等,在一定情况下使用它可以方便地完成节点的选择,我们用一个实例来感受一下:

2.2K20

网络爬虫 | XPath解析

在学习xpath提取数据之前,得先了解下解析HTML代码的一些方法,如果读者想更加深入学习HTML代码等相关内容,需要去查看下前端HTML相关内容,本文仅介绍网络爬虫需要用到的部分内容。...选取当前节点节点 @ 选取属性 * 选取所有节点 下面为一些路径表达式及表达式结果: 路径表达式 结果 petstore 选取 petstore 元素的所有节点 /petstore 选取根元素...,这时就需要同时多个属性,以便更加精确地获取指定节点中的数据。...轴名称 结果 ancestor 当前节点的所有先辈(、祖父等)。 ancestor-or-self 当前节点的所有先辈(、祖父等)以及当前节点本身。 attribute 当前节点的所有属性。...child 当前节点的所有元素。 descendant 当前节点的所有后代元素、孙等)。 descendant-or-self 当前节点的所有后代元素、孙等)以及当前节点本身。

1.2K20

学爬虫利器Xpath,看这一篇就够了(建议收藏)

2.获取节点 我们通过/或//即可查找元素节点或子孙节点。...3.获取节点 假如我们知道了节点,怎么来查找节点呢?可以用..来实现。....html">fifth item 其中一个节点因为自动修正,li节点的尾标签添加的时候换行了,所以提取文本得到唯一结果就是li节点的尾标签和a节点的尾标签之间的换行符。...兄弟元素元素、祖先元素等,示例如下: from lxml import etree text = """ <a href="link1.html...今天我们主要介绍了Xpath在获取所有<em>节点</em>、<em>子</em><em>节点</em>、<em>父</em><em>节点</em>、<em>文本</em>、属性、以及属性多值匹配、多属性匹配等方面的具体操作,Xpath功能非常强大,内置函数非常多,熟练使用之后,可以大大提升HTML信息的提取效率

1.2K40

学爬虫利器XPath,看这一篇就够了

XPath常用规则 我们现用表格列举一下几个常用规则: 表达式描述 nodename选取此节点的所有节点 /从当前节点选取直接节点 //从当前节点选取子孙节点 .选取当前节点 ..选取当前节点节点...,并且还自动添加了 body、html 节点。...节点 我们通过 / 或 // 即可查找元素节点或子孙节点,加入我们现在想选择 li 节点所有直接 a 节点,可以这样来实现: from lxml import etree html = etree.parse...节点 我们知道通过连续的 / 或 // 可以查找节点或子孙节点,那假如我们知道了节点怎样来查找节点呢?在这里我们可以用 .. 来获取节点。...节点轴选择 XPath 提供了很多节点轴选择方法,英文叫做 XPath Axes,包括获取元素、兄弟元素元素、祖先元素等等,在一定情况下使用它可以方便地完成节点的选择,我们用一个实例来感受一下:

1.9K21

Python爬虫:我这有美味的汤,你喝吗

(2)获取属性 每个节点可能有多个属性,比如id和class等,选择这个节点元素之后,可以调用attrs获取所有的属性。...原因是:class这个属性可以有多个值,所以将其保存在列表中 (4)获取内容 可以利用string属性获取节点元素包含的文本内容,比如要获取第一个p节点文本。...print(soup.head.title.string) 关联选择 在做选择的时候,有时候不能做到一步就获取到我想要的节点元素,需要选取某一个节点元素,然后以这个节点为基准再选取它的节点节点...(1)选取节点和子孙节点 选取节点元素之后,想要获取它的直接节点可以调用contents属性。...所以通过循环可以遍历出每一个内容。 试着运行上面的代码,你会发现,输出结果包含了body节点和html节点。 (3) 兄弟节点 上面的两个了例子说明了节点节点的获取方法。

2.4K10

爬虫必备Beautiful Soup包使用详解

注 意 在打印p节点对应的代码时,会发现只打印了第一个P节点内容,这说明当多个节点时,该选择方式只会获取第一个节点中的内容,其他后面的节点将被忽略。...['href']) print('div节点中class属性对应的值为:', soup.div['class']) 获取节点包含的文本内容 实现获取节点包含的文本内容是非常简单的,只需要在节点名称后面添加...关联获取 在获取节点内容时,不一定都能做到一步获取指定节点中的内容,有时还需要先确认某一个节点,然后以该节点为中心获取对应的节点、孙节点节点以及兄弟节点。...• 1、获取节点 在获取某节点下面的所有节点时,可以使用contents或者是children属性来实现,其中contents返回的是一个列表,在这列表中的每个元素都是一个节点内容,而children...: 第一个p节点文本 文本节点中的所有元素 ['\n', '第', '一', '个', 'p', '节', '点', '下', '文', '本', '\n'] 第一个div节点内容 <div class

2.5K10

python爬虫之BeautifulSoup

,只有在此标签下没有标签,或者只有一个标签的情况下才能返回其中的内容,否则返回的是None具体实例如下: print soup.p.string #在上面的一段文本中p标签没有标签,因此能够正确返回文本内容...print soup.html.string #这里得到的就是None,因为这里的html中有很多的标签 get_text() 可以获得一个标签中的所有文本内容,包括子孙节点内容,这是最常用的方法...p标签中 print tag insert Tag.insert() 方法与 Tag.append() 方法类似,区别是不会把新元素添加节点 .contents 属性的最后,而是把元素插入到指定的位置...或文本节点前插入内容,insert_after() 方法在当前tag或文本节点后插入内容: soup = BeautifulSoup("stop") tag = soup.new_tag...,包括其中的子孙节点文本内容 html=""" """ soup=BeautifulSoup(html,'lxml') tag=soup.p new_tag=soup.new_tag

86220

Python3解析库lxml

选取当前节点节点 @ 选取属性 * 通配符,选择所有元素节点元素名 @* 选取所有属性 [@attrib] 选取具有给定属性的所有元素 [@attrib='value'] 选取给定属性具有给定值的所有元素...[tag] 选取所有具有指定元素的直接节点 [tag='text'] 选取所有具有指定元素并且文本内容是text节点 (1)读取文本解析节点 from lxml import etree text...,可以使用//后面加上节点名称,然后调用xpath()方法 html.xpath('//li') #获取所有子孙节点的li节点 (4)获取节点 通过/或者//即可查找元素节点或者子孙节点,如果想选择...a (5)获取节点 我们知道通过连续的/或者//可以查找节点或子孙节点,那么要查找节点可以使用..来实现也可以使用parent::来获取节点 from lxml import etree from...XPath提供了很多节点选择方法,包括获取元素、兄弟元素元素、祖先元素等,示例如下: from lxml import etree text1='''

1.7K40

BeautifulSoup库整理

类的5种元素 基本元素 简单说明 详细说明 tag 标签 分别用与来表示开头和结尾 name 标签的名字 用法:.name输出为字符串的形式 attributes 标签里的属性 用法...:.attrs输出为字典的形式 navigablestring 标签里的内容 用法:.string可以跨域多个标签层次 comment 标签里面的注释 一种特殊的comment类型...获取标签方法,解析后的网页.标签的名字,如果同时存在多个标签只取第一个 获取标签的标签.parent 表示标签 当标签为没有属性的时候,我们获得的是个空字典 四.标签树向下遍历....contens:节点列表,不仅仅包括标签节点,也包括字符串节点例如\n .children:节点的迭代器类型也包括字符串节点例如\n descendants:子孙节点的迭代类型也包括字符串节点例如...\n 五.标签树向上遍历 .parent:节点的父亲标签 .parents:节点先辈标签的迭代器类型 注意:如果是html的标签就是他自己,soup本身也是种特殊的标签的他的标签是空 六.标签树平行遍历

70620

Python爬虫实战入门:豆瓣电影Top250(保你会,不会来打我)

Web 服务器发送 GET、POST 等请求方法; 在请求中添加自定义标头(headers)、URL 参数、请求体等; 自动处理 cookies; 返回响应内容,并对其进行解码; 处理重定向和跳转等操作...对html或xml形式的文本提取特定的内容,就需要我们掌握lxml模块的使用和xpath语法。...lxml模块可以利用XPath规则语法,来快速的定位HTML\XML 文档中特定元素以及获取节点信息(文本内容、属性值) XPath (XML Path Language) 是一门在 HTML\XML...使用chrome插件选择标签时候,选中时,选中的标签会添加属性class=“xh-highlight” xpath定位节点以及提取属性或文本内容的语法 表达式 描述 nodename 选中该元素。.../ 从根节点选取、或者是元素元素间的过渡。 // 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。 . 选取当前节点。 … 选取当前节点节点。 @ 选取属性。

93511
领券