Python 网络爬虫 之 Xpath 基本语法 和 使用方法以及 安装Xpath

一、概念:

Xpath 是什么?

Xpath 是 XML Path Language 的简写,他是一门在 XML 和 HTML 文档中查找信息的语言,可以用来在 XML 和 HTML 文档中对元素和属性进行遍历。

二、Xpath的安装:谷歌浏览器,直接在百度上搜 xpath-helper(谷歌浏览器插件)就可以了,然后将下载完的文件使用浏览器打开安装完之后再重新打开浏览器就可以看到右上角有个大大的 × 号,然后就可以了

======== 如果需要我的原文word手写文档,请关注后私密我或直接留言 =========

三、直接子节点概念: 就是紧挨着它的下一行的元素,例如下面的:head 就是 html 的直接子节点

# 子节点

四、子孙节点概念:就是包含和它隔行的元素,而子孙节点就是 html 下面的 head 和 div 元素

# 子节点

# 孙节点

五、html 中的属性概念:下面这段代码中的 id 就叫属性

六、 / 和 // 的区别: / 代表只获取直接子节点; // 代表获取子孙节点,一般 // 用的多

七、Xpath语法:分为四个部分

1、选取节点 :就是用什么样的方法去选取节点

表达式 作用 用法 用法说明

(1) nodename 节点名 //div 这个div就是nodename,节点名

----------------------------------------------------------------------------------------

(2) / 有两个作用:如果在最前面代表 /html 只在整个HTML文档中查找根节

只在根节点查找。否则代表直接子元素 点下的 html 元素

----------------------------------------------------------------------------------------

(3) // 从全局节点中选择节点,随便在哪个位置 //div 在整个HTML文档查找所有的div元素

----------------------------------------------------------------------------------------

(4) @ 选取某个节点的属性 //div[@id] 选择所有拥有id属性的div元素

----------------------------------------------------------------------------------------

Python 网络爬虫 之 Xpath 基本语法 和 使用方法以及 安装Xpath

如果出现格式问题,请移步到PC端观看

2、谓语(wei zi) :通过谓语可以在查找节点的同时添加筛选条件,就是中括号中的东西

用法:

(1) 只获取body下的 "第1个" div 元素 -- //body/div[1]

(2) 获取body下的 "最后一个" div元素 -- //body/div[last()]

(3) 只获取 "前两个" div元素 -- //body/div[position()<3]

(4) 只获取拥有class="s_position_list"属性的div元素 -- //div[@class="s_position_list"]

(5) contains 模糊匹配方法:当一个元素有多个属性时使用,例如:一个div元素同时有class

和fl属性 //div[contains(@class, "fl")]

3、通配符 :就是 * ,代表的是任意字符,任意节点,任意属性等

用法:

(1) * 意思是匹配任意字符 : 要求:获取body下的所有元素 -- 语法://body/*

(2) @* 意思是获取所有属性 : 要求:只要拥有属性的div都提取出来 -- 语法://div[@*]

4、选取多个路径:通过 | 运算符,可以同时选取若干个路径

要求1:获取 属性为 class="job_bt" 或 class="job_adv" 的 div 元素

语法: //dd[@class="job_bt"] | //dd[@class="job_adv"]

要求2:获取 class="job_detail" 并且 id="job_detail" 属性的 dl 元素

语法://dl[@class="job_detail" and @id="job_detail"]

Python 网络爬虫 之 Xpath 基本语法 和 使用方法以及 安装Xpath

【纯个人手打,替老师传道,不求多大成就但愿 能帮到大家,在闲暇的时间里为大家共享一些工作经验和各种技术资源文章,希望帮助大家共同进步 也希望我的发布对你有所帮助,我的发布里有更多类似的文章可以查阅,喜欢的请点关注,谢谢。你们的关注是我不停发布的最大动力在我发布里好多类似这样的文章,请尽情阅览】


分享到:


相關文章: