【Python】爬虫-Xpath

【Python网络爬虫笔记】11- Xpath精准定位元素 Xpath,能够帮助开发者从复杂的网页结构中精准地提取所需信息。本文将深入探讨 Xpath 在 Python 网络爬虫中的作用、常用方法、安装与使用步骤以及典型案例。 阅读详情

Xpath

文章参考:https://www.cnblogs.com/mxjhaima/p/13775844.html#%E6%A1%88%E4%BE%8B

安装

pip install lxml

引用

from lxml import etree

获取文档树对象

通过Xpath 获取文档的对象,获取到对象后,可以通过文档的对象去去获取到树中的元素。

文本转化文档树对象

def strToEleObj():
    doc = '''
          <div>
              <ul>
                   <li class="item-0"><a href="link1.html">first item</a></li>
                   <li class="item-1"><a href="link2.html">second item</a></li>
                   <li class="item-inactive"><a href="link3.html">third item</a></li>
                   <li class="item-1"><a href="link4.html">fourth item</a></li>
                   <li class="item-0"><a href="link5.html">fifth item</a> # 注意,此处缺少一个 </li> 闭合标签
               </ul>
           </div>
          '''
    # 把文本转换成一个文档树对象
    html = etree.HTML(doc)
    result = etree.tostring(html)
    print(str(result, 'utf-8'))

文件转化文档树对象

def fileToEleObj():
    # 读取外部文件 index.html
    html = etree.parse('./index.html')
    # pretty_print=True 会格式化输出
    result = etree.tostring(html, pretty_print=True)  # pretty_print=True 会格式化输出
    print(result)

节点、元素、属性、内容

xpath 的思想是通过 路径表达 去寻找节点。节点包括元素,属性,和内容

路径表达式

/   根节点,节点分隔符,
//  任意位置
.   当前节点
..  父级节点
@   属性

示例

from lxml import etree
'''
    路径表达式
'''
def get_el_list():
    doc = '''
              <div>
                  <ul>
                       <li class="item-0"><a href="link1.html">first item</a></li>
                       <li class="item-1"><a href="link2.html">second item</a></li>
                       <li class="item-inactive"><a href="link3.html">third item</a></li>
                       <li class="item-1"><a href="link4.html">fourth item</a></li>
                       <li class="item-0"><a href="link5.html">fifth item</a> # 注意,此处缺少一个 </li> 闭合标签
                   </ul>
               </div>
              '''
    # 把文本转换成一个文档树对象
    html = etree.HTML(doc)
    # 获取当前节点
    print('获取当前节点---> ', html.xpath('.'))
    # 获取 根节点 标签 ,当前元素无根节点 通过 打印 etree.tostring(html) ,会发现根节点为 <html> </html> 包裹的内容 ,上一行获取的当前节点为 html
    print('获取 根节点 标签---> ', html.xpath('/'))
    # 获取 li 标签
    print('获取 li 标签---> ', html.xpath('//li'))
    # 获取 li 下的 a 标签属性
    print('获取li下的 a 标签属性----> ', html.xpath('//li/a/@href'))
    # 获取 p 标签 ,此标签不存在 返回结果为空数组
    print('获取 p 标签----> ', html.xpath('//p '))

输出结果

获取当前节点--->  [<Element html at 0x2a989854200>]
获取 根节点 标签--->  []
获取 li 标签--->  [<Element li at 0x2a9898ece40>, <Element li at 0x2a9899240c0>, <Element li at 0x2a989924180>, <Element li at 0x2a9899241c0>, <Element li at 0x2a989924200>]
获取li下的 a 标签属性---->  ['link1.html', 'link2.html', 'link3.html', 'link4.html', 'link5.html']
获取 p 标签---->  []

说明

  1. 将doc 转换成 文档对象后,为 包裹的内容;故获取到的当前的节点对象为HTML;
  2. 当前节点为HTML,无根节点故返回为空数组即:[];
  3. 查询不存在的节点时,返回空数组即:[]

通配符

*   任意元素
@*  任意属性
node()  任意子节点(元素,属性,内容)

示例


'''
    通配符
'''
from lxml import etree
def get_el_by_anyChar():
    doc = '''
              <div>
                  <ul class="ul" >
                       <li class="item-0"><a href="link1.html">first item</a></li>
                       <li class="item-1"><a href="link2.html">second item</a></li>
                       <li class="item-inactive"><a href="link3.html">third item</a></li>
                       <li class="item-1"><a href="link4.html">fourth item</a></li>
                       <li class="item-0"><a href="link5.html">fifth item</a> # 注意,此处缺少一个 </li> 闭合标签
                   </ul>
               </div>
              '''
    # 把文本转换成一个文档树对象
    html = etree.HTML(doc)
    # 获取 ul 下的所有子节点
    print('获取 ul 下的所有子节点---> ', html.xpath('//ul/node()'))
    # 获取 任意元素[所有的]
    print('获取 ul 下 任意元素[所有的]---> ', html.xpath('//ul/*'))
    # 获取 任意属性 [所有的]
    print('获取 ul 下 任意属性[所有的]---> ', html.xpath('//ul/@*'))

输出结果

获取 ul 下的所有子节点--->  ['\n                       ', <Element li at 0x1d4792b5e80>, '\n                       ', <Element li at 0x1d4792b5e00>, '\n                       ', <Element li at 0x1d4792b5f00>, '\n                       ', <Element li at 0x1d4792b5f40>, '\n                       ', <Element li at 0x1d4792b5ec0>, ' 闭合标签\n                   ']
获取 任意元素--->  [<Element li at 0x1d47928dd80>, <Element li at 0x1d4792b5e80>, <Element li at 0x1d4792b5fc0>, <Element li at 0x1d4792b5e00>, <Element li at 0x1d4792b5f00>]
获取 任意属性--->  ['ul']

谓语

//a[n] n为大于零的整数,代表子元素排在第n个位置的<a>元素
//a[last()]   last()  代表子元素排在最后个位置的<a>元素
//a[last()-]  和上面同理,代表倒数第二个
//a[position()<3] 位置序号小于3,也就是前两个,这里我们可以看出xpath中的序列是从1开始
//a[@href]    拥有href的<a>元素
//a[@href='www.baidu.com']    href属性值为'www.baidu.com'的<a>元素
//book[@price>2]   price值大于2的<book>元素

示例

from lxml import etree
def get_el_by_wei():
    doc = '''
                  <div>
                      <ul class="ul" >
                           <li class="item-0"><a href="link1.html">first item</a></li>
                           <li class="item-1"><a href="link2.html">second item</a></li>
                           <li class="item-inactive"><a href="link3.html">third item</a></li>
                           <li class="item-1"><a href="link4.html">fourth item</a></li>
                           <li class="item-0"><a href="link5.html">fifth item</a> # 注意,此处缺少一个 </li> 闭合标签
                       </ul>
                   </div>
                  '''
    # 把文本转换成一个文档树对象
    html = etree.HTML(doc)
    # 获取第一个 li / a 元素 里面的文本
    print('获取第一个 ---> ', html.xpath('//li[1]/a/text()'))
    # 获取最后一个 li / a 元素 里面的文本
    print('获取最后一个 ---> ', html.xpath('//li[last()]/a/text()'))
    # 获取倒数第二个 li / a元素 里面的文本
    print('获取 倒数第二个---> ', html.xpath('//li[last()-1]/a/text()'))
    # 获取位置序号小于3,也就是前两个 li / a元素 里面的文本
    print('获取位置序号小于3 ---> ', html.xpath('//li[position()<3]/a/text()'))
    # 获取拥有href的<a>元素下的文本
    print('获取第一个 ---> ', html.xpath('//a[@href]/text()'))
    # 获取 a 标签下 href = link3.html的a元素下的文本 注意 不是 == 而是 =
    print('获取 a 标签下 href = link3.html的<a>元素---> ', html.xpath('//a[@href="link3.html"]/text()'))
    # 获取 ul class == ul 的
    print('获取 ul class == ul  ---> ', html.xpath('//ul[@class="ul"]'))

多个路径

用| 连接两个表达式,可以进行 或匹配

//book/title | //book/price  

示例

from lxml import etree
def get_el_mutil_path():
    doc = '''
                  <div>
                      <ul class="ul" >
                           <li class="item-0"><a href="link1.html">first item</a></li>
                           <li class="item-1"><a href="link2.html">second item</a></li>
                           <li class="item-inactive"><a href="link3.html">third item</a></li>
                           <li class="item-1"><a href="link4.html">fourth item</a></li>
                           <li class="item-0"><a href="link5.html">fifth item</a> # 注意,此处缺少一个 </li> 闭合标签
                       </ul>
                   </div>
                  '''
    # 把文本转换成一个文档树对象
    html = etree.HTML(doc)
    # 获取li 下 class = item-inactive 或者 item-1
    print('获取li 下 class = item-inactive 或者 item-1 ---> ', html.xpath('//li[@class="item-inactive"] | //li[@class="item-1"] '))

输出结果

获取li 下 class = item-inactive 或者 item-1 --->  [<Element li at 0x1b490955f40>, <Element li at 0x1b490966200>, <Element li at 0x1b490966180>]

函数

更多函数查看https://www.w3school.com.cn/xpath/xpath_functions.asp

contains(string1,string2)
starts-with(string1,string2)
# 文本
text()
# 最后一个
last()
# 位置
position()
# 回去所有节点
node()
'''
    函数
'''
from lxml import etree
def get_el_func():
    doc = '''
                     <div>
                         <ul class="ul" >
                              <li class="item-0 active"><a href="link1.html">first item</a></li>
                              <li class="item-1"><a href="link2.html">second item</a></li>
                              <li class="item-inactive"><a href="link3.html">third item</a></li>
                              <li class="item-1"><a href="link4.html">fourth item</a></li>
                              <li class="item-0"><a href="link5.html">fifth item</a> # 注意,此处缺少一个 </li> 闭合标签
                          </ul>
                      </div>
                     '''
    # 把文本转换成一个文档树对象
    html = etree.HTML(doc)
    # 匹配 class 包含 active 的 元素
    print(html.xpath("//*[contains(@class,'active')]"))
    # 获取所有 li / a 文本
    print(html.xpath("//li/a/text()"))
    # 获取最后一个 li / a 文本
    print(html.xpath("//li[last()]/text()"))
    # 获取位置为1的li /a 文本 ,节点时从1开始 而不是0
    print(html.xpath("//li[position()=1]/a/text()"))

输出结果

[<Element li at 0x23ea36d0400>, <Element li at 0x23ea36d0180>]
['first item', 'second item', 'third item', 'fourth item', 'fifth item']
[' # 注意,此处缺少一个 ']
['first item']

实战信息

获取某电影网站电影名称、简单描述、图片

import requests
from lxml import etree

'''
     获取电影信息列表
'''
def get_moive_info_list(url):
        # 定义头部信息
        headers = {
                'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36'
        }
        res = requests.get(url, headers=headers)
        # res.text 返回的是 文本
        html = res.text
        print('输出响应信息->',html)
        # 将文本转换成文档对象
        selector = etree.HTML(html)
        # 返回是电影名列表
        title_list = selector.xpath('//a[@class="pic-pack-outer"]/h3/text()')
        print('电影名称列表:',title_list)
        # 获取简单描述
        desc_list = selector.xpath('//a[@class="pic-pack-outer"]/p/text()')
        print('电影名称简单描述:', desc_list)
        # 图片
        img_list = selector.xpath('//a[@class="pic-pack-outer"]/img/@src')
        print('图片列表:', img_list)

if __name__ == '__main__':
        url = 'https://xxxxxxx/vod/list/n_1_t_25/o1p1.html'
        get_moive_info_list(url)

输出结果

输出响应信息-> <!DOCTYPE html>
·······
</body>
</html>
电影名称列表: ['辣妈犟爸', '五月梨花香', '岁岁平安',.....]
电影名称简单描述: ['年轻村官奋斗历程', '脱贫致富振兴家乡', .....]
图片列表: ['https://image11.m1905.cn/uploadfile/2022/0804/thumb_1_150_203_20220804094442559303.jpg',  .... 'https://image11.m1905.cn/uploadfile/2016/0926/thumb_1_150_85_20160926105222739343.jpg']

《Python3网络爬虫开发实战》第3章 网页数据的解析提取之XPath的使用 因此要确定li节点,需要同时考察class和name属性,一个条件是class属性里面包含li字符串,另一个条件是name属性为item字符串,这二者同时得到满足,才是li节点。这里我们使用*匹配,所以获取了所有的后续同级节点。第三次选择时,调用了attribute轴,可以获取所有属性值,其后跟的选择器还是*,代表获取节点的所有属性,返回值就是li节点的所有属性值。如果想获取某些特定子孙节点下的所有文本,则可以先选取特定的子孙节点,再调用text方法获取其内部的文本,这样可以保证获取的结果的整洁性。 阅读详情

相关推荐

Python3网络爬虫实战-28、解析库的使用:XPath

上一节我们实现了一个最基本的爬虫,但提取页面信息时我们使用的是正则表达式,用过之后我们会发现构造一个正则表达式还是比较的繁琐的,而且万一有一点地方写错了就可能会导致匹配失败,所以使用正则来提取页面信息多多少少还是有些不方便的。 对于网页的节点来说,它可以定义 id、class 或其他的属性,而且节点之间还具有层次关系,在网页中可以通过 XPath 或 CSS 选择器来定位一个或多个节点。那么在页面...

Python追梦 643

python xpath语法-XPath语法和lxml模块(数据提取)

XPath语法和lxml模块XPathlxml库1.什么是XPath?XPath (XML Path Language) 是一门在 XML 文档中查找信息的语言,可用来在 XML 文档中对元素和属性进行遍历。2.XPath 开发工具开源的XPath表达式编辑工具:XMLQuire(XML格式文件可用)Chrome插件 XPath HelperFirefox插件 XPath Checker3.Chr...

weixin_37988176的博客 516

Python爬虫编程思想(43):XPath实战:按序选择节点

在很多时候,在选中某些节点时,按一些属性进行匹配,可能同时有多个节点满足条件,而我们只想得到其中的一个或几个节点,这时就要使用索引的方式获取特定的节点。 在XPath中使用索引的方式与Python中引用列表中元素的方式类似,都是在中括号中使用索引,如'//li[1]'表示选择所有<li>节点中的第1个<li>节点。XPath中的索引是从1开始的,这一点与Python中的列表不同,列表的索引是从0开始的,这一点在使用时要注意。 XPa...

一个被知识诅咒的人 1058

python自动化测试(三):xpath获取元素

py自动化:xpath获取元素

欢迎来到长风沛雨的博客 2428

〖Python网络爬虫实战⑬〗- XPATH实战案例

我们通过学习了简单的Xpath操作,以及在另外一篇xpath的实战案例下,本文,继续分享一个关于xpath的实战案例。xpath最大的难点就是如何写下path后面的语法,我们要找到对应的节点,就可以了。

爱吃饼干的小白鼠的博客 1539

〖Python网络爬虫实战⑫〗- XPATH语法介绍

前面我们实现了一个最基本的爬虫,但提取页面信息时使用的是正则表达式,过程比较烦琐,且万一有地方写错了,可能会导致匹配失败、所以使用正则表达式提取页面信息多少还是有些不方便.对于网页的节点来说、可以定义id,class或其他属性,而且节点之间还有层次关系,在网页中可以通过XPath或CSS选择器来定位一个或多个节点。那么、在解析页面时,利用XPath或CSS选择器提取某个节点,然后调用相应方法获取该节点的正文内容或者属性,不就可以提取我们想要的任意信息了吗?

爱吃饼干的小白鼠的博客 1016

Python爬虫——XPath的使用

可以用xpath插件来动态的获取xpath路径(将鼠标悬停在需要选取的文本数据上,然后按下shift按键就会自动出现定位该文本的Xpath表达式,然后再根据需求对表达式修改。先发送请求访问网站,得到网站源码,然后解析网站源码,从网站源码中使用xpath表达式定位到需要下载的图片地址,然后用urllib.request.urlretrieve()方法下载。4、调用xpath路径,提取数据,xpath的返回数据是列表类型。2、发送请求访问网站,得到服务器响应的页面源码。使用实例二从网站上下载图片。.......

万里顾一程的博客 8904

Python 网络爬虫(三):XPath 基础知识

XPath(XML Path Language)是一种用于在XML和HTML文档中导航和定位节点的语言。它是W3C的标准,广泛应用于数据提取、文档解析和网页爬虫等领域。本文简要介绍了XPath的基本概念、节点选择、语法规则、轴和运算符。XPath是爬虫开发中非常重要的一部分,可以帮助我们准确定位和提取所需的数据。通过学习XPath的基本知识和实际应用,您将能够更加灵活和高效地开发网络爬虫。希望本文对您的学习和实践有所帮助!如有任何问题,请随时向我提问。

水滴的博客 7314

Python3 etree, requests库抓取bt

etree

while(True): print('adorable') 1250

CLIP-Count代码配置以及踩坑记录

CLIP-Count代码配置以及踩坑记录

学术菜鸡 1011

超全!!snowboy语音唤醒(树莓派4b)

通过snowboy进行树莓派的语音唤醒

crimaster1024的博客 8736

python网络爬虫:使用XPath进行网页解析

python网络爬虫 使用XPath进行网页解析 使用Xpath解析网页 Xpath介绍 XML路径语言(XML Path Language),它是一种基于XML的树状结构,在数据结构树中找寻节点,确定XML文档中某部分位置的语言。 需要把源文件转成树状结构,再对树状结构应用相应的xpath查询语句 基本语法 使用Xpath需要从lxml库中导入etree模块,还需使用HTML类对需要匹配的HTML对象进行初始化(XPath只能处理文档的DOM表现形式)。HTML类的基本语法格式如下。 lxml.e

m0_51877411的博客 6306

【CIC-IDS数据集+机器学习】实现网络流量异常检测

本项目基于CIC-IDS数据集,使用多种机器学习算法实现网络流量异常检测系统。项目采用了完整的机器学习工作流程,从数据预处理到模型部署,实现了高精度的网络入侵检测。

XiaoMu_001的博客 1936

Python网络爬虫 - Xpath

Xpath(XML Path Language)是一门在XML和HTML文档中查找信息的语言, 可用来在XML和HTML文档中对元素和属性进行遍历。简单来说,我们的数据是超文本数据,想要获取超文本数据里面的内容,就要按照一定规则来进行数据的获取,这 种规则就叫做Xpath语法。

486

Ubuntu系统下MRIcroN、FSL6.0.5、Freesurfer7.1.1、ANTs、MRtrix3、AFNI的安装详解——核磁共振数据处理必备

Ubuntu系统下MRIcroN、FSL6.05、Freesurfer7.1.1、MRtrix3、AFNI、ANTs的安装详解一、安装MRIcroN二、 FSL6.0.5完整安装与FSLeyes等Not Found修复Anaconda与虚拟环境(所有操作均在root下)获取最新版Anaconda3安装Anaconda3配置所有用户可用去掉恼人的base创建虚拟环境FSL与FSLeyes安装(所有操作均在root下)下载FSL安装FSL添加环境变量到/etc/bash.bashrc末尾 (ubuntu)或者

从事脑科学核磁共振方法学研究,在Nature communications等权威期刊发表研究论文,熟练掌握磁共振处理方法和统计学方法,欢迎大家和我交流。 6086

2、探索谷歌云平台(GCP):入门指南

本文全面介绍了谷歌云平台(GCP)的入门知识,涵盖其全球基础设施、核心服务和使用方法。内容包括GCP区域与可用区结构、创建免费账户、配置计算资源(如GCE虚拟机)、存储类型(PD、Filestore、GCS)、网络架构(VPC)、组织与项目管理、身份访问控制(IAM),以及计算、存储、数据库、大数据和人工智能等各类云服务。文章还提供了资源规划、安全管理和成本控制等实用建议,帮助用户快速上手并高效利用GCP构建可扩展的云解决方案。

uber9的博客 256

Python网络爬虫--数据提取xpath

一、xpath简介 XPath,即为XML路径语言(XMLPathLanguage),它是一种用来确定XML文档中某部分位置的语言。 xml和html异同: 都是玩标签,标签中都有属性 xml必须为双标签,html单双都可 xml标签为自定义,html标签都为内置 XPath 使用路径表达式在 XML 文档中进行导航 XPath 包含一个标准函数库 XPath 是 XSLT 中的主要元素 XPath 是一个 W3C 标准 二、xpath使用 xpath使用: 1.导入lxml.etree:from lxm

weixin_50267049的博客 1963

YOLO26 多任务统一架构:检测 / 分割 / 姿态 / OBB 设计

YOLO26提出了一种多任务统一架构,整合了目标检测、实例分割、姿态估计和旋转框检测(OBB)四大计算机视觉任务。该架构采用共享Backbone和Neck的设计,配合轻量级任务特定Head,解决了传统方法中多模型并行带来的高开发成本、大内存占用和低推理效率问题。核心设计包括:1)共享特征提取层实现参数复用;2)模块化Head结构支持灵活任务组合;3)统一接口实现单模型多任务处理。实验表明,该架构在保持各任务性能的同时显著提升了系统效率,为多任务视觉系统提供了新的实现范式。

一键难忘的博客 706

Python网络爬虫 二、Xpath语法详解

Python网络爬虫 二、Xpath语法详解 lxml是一个网页解析库。Xpath是一门在XML文档中查找信息的语言。Xpath课 用来在XML文档中对元素和属性进行遍历。 安装 pip install lxml 导入 import requests from lxml import etree 创建一个简单的html样本,注意其特点,层层嵌套。 htm = ''' <html> ...

Hanzoe的博客 821

手把手教您如何群晖/飞牛NAS等服务器上一键部署洛雪音乐同步服务,手机电脑无缝同步歌单,支持外网访问

🎵 手机电脑歌单不同步?用Docker在群晖/飞牛NAS等服务器上搭个同步服务器, 3分钟搞定 !支持docker-compose一键部署,手机、电脑、平板收藏夹实时同步,外出也能用域名远程访问 ~ ✨

XiaoqiangClub的博客 4610

第 1 篇:对象池模式 (Object Pool) —— 裸机下的动态内存革命

摘要:嵌入式开发中频繁malloc/free会导致内存碎片和性能问题。对象池模式通过预分配固定大小内存块和位图管理,实现O(1)时间复杂度的内存分配/释放。相比malloc,对象池具有无碎片、确定性执行时间、更低内存开销等优势,尤其适合实时系统。文章详细解析了基于位图的对象池实现原理,包括核心数据结构、高性能索引算法和关键API设计,并对比了空间/时间开销,最后讨论了零拷贝队列、调试水印等进阶用法。该模式能显著提升嵌入式系统的内存使用效率和稳定性。

一路往蓝-Anbo 的博客 426

【XPath】—— python网络爬虫(六)

其后需要跟两个冒号,然后是节点的选择器,这里我们直接使用*,表示匹配所有节点,因此相应返回结果是第一个li节点的所有祖先节点,包括html、body,div和ul。这里我们虽然使用的是*匹配,但又加了索引选择,所以只获取了第二个后续节点。可想而知,这里选取的是所有子孙节点的文本,其中前两个是li的子节点a内部的文本,另外一个是最后一个li节点内部的文本,即换行符。第三次选择时,调用了 attribute 轴,可以获取所有属性值,其后跟的选择器还是*,代表获取节点的所有属性,返回值就是li节点的所有属性值。

2302_78240669的博客 749

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Python网络爬虫开发实战使用XPath,xpath的多种用法

XPath,全称XML Path Language,即XML路径语言,它是一门在XML文档中查找信息的语言。它最初是用来搜寻XML文档的,但是它同样适用于HTML文档的搜索。 很多人学习python,不知道从何学起。 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。 很多已经做案例的人,却不知道如何去学习更加高深的知识。 那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码! QQ群:101677771 所以在做爬虫时,我们完全可以使用XPa

Python学习Q群696455390 435

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

python网络爬虫——XPath的使用(四)

python网络爬虫——XPath的使用XPath的使用一、XPath的介绍二、XPath使用1、选取所有节点2、获取子节点3、获取父节点4、属性匹配5、文本获取6、属性获取7、属性多值匹配8、多属性匹配9、按序选择10、节点轴选择 XPath的使用 一、XPath的介绍 XPath的几个常用规则: 表达式 描述 nodename 选取此节点的所有子节点 / 从当前节点选取直接子节点 // 从当前节点选取子孙节点 . 选取当前节点 … 选取当前节点的父节点 @ 选取属性

gets_s的博客 765

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

python网络爬虫-二度进阶篇·Xpath与lxml

Xpath语法、lxml库的应用

Tttian622的博客 1763

Python爬虫实战之xpath解析

XPath是一门在XML文档中查找信息的语言,最初是用来搜寻XML文档的,但是它同样适用于HTML文档的搜索。所以在Python爬虫中,我们经常使用xpath解析这种高效便捷的方式来提取信息。

阿浩的博客 4万+
上一篇: 【VUE】 文件预览
下一篇: Code Generate V2.0 代码生成器
程序员小菜鸡QAQ
博客等级 码龄9年 2360粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值