接着爬虫系列,继续讲解XPath定位
老司机,带你用30行代码爬取高清美女写真,附安装包+源码
实操续:爬虫基础知识,浏览器最基本的配置方法
实操续:HTML基本结构,以及数据来源,网页获取
今天继续讲解XPath定位
![在这里插入图片描述](https://img-blog.csdnimg.cn/5a14d657fd744cb99e58e4b2eb89f881.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rS-5qOu5pS75Z-O54uu,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
一、XPath直观验证工具 selenium IDE
效果展示
以百度为例,获取所有 div带id属性 的元素,被选中的在HTML背影色加深,在网页中有虚线边框
![在这里插入图片描述](https://img-blog.csdnimg.cn/dd4ab00276594d16bf3bf2a133ddcc68.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rS-5qOu5pS75Z-O54uu,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
selenium IDE安装
1 .下载火狐55以内版本安装包(最新版本已经不支持了),安装完成,迅速设置禁止自动更新版本
2 .下载selenium IDE,FireXPath,firebug离线包
3 .依次把离线包拖入浏览器
![在这里插入图片描述](https://img-blog.csdnimg.cn/8df1a302014945678f94cd2f03fdace3.gif#pic_center)
4 .安装成功后,点击右上角的小虫子
![在这里插入图片描述](https://img-blog.csdnimg.cn/6580a1a6209146ab91149e16ab7eb258.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rS-5qOu5pS75Z-O54uu,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
5 .因为网盘容易失效,离线包资源放在群共享了
![在这里插入图片描述](https://img-blog.csdnimg.cn/17a184ae29614d32a467704c91ea06aa.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rS-5qOu5pS75Z-O54uu,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
XPath格式
//div[@id]
第一部分,从哪里获取,必要
/表示从跟节点获取
//表示从当前节点下获取节点,不考虑中间层级关系
例如:
//div [@id=“content_left”]/div只会获取整个左侧div标签首层div
![在这里插入图片描述](https://img-blog.csdnimg.cn/991387ee9c4945cbacf2c2ec8a3da928.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rS-5qOu5pS75Z-O54uu,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
//div [@id=“content_left”]//div会获取整个左侧div标签
![在这里插入图片描述](https://img-blog.csdnimg.cn/0e2089aec3da4bd8b3d928e584b976b1.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rS-5qOu5pS75Z-O54uu,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
第二部分,标签名称,必要
常见块标签div,p,ul,ol
通配符*表示所有标签
![在这里插入图片描述](https://img-blog.csdnimg.cn/f544f33e07e240a1bb9e0a0ac3d4e639.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rS-5qOu5pS75Z-O54uu,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
第三部分,[ ]表达式修饰符,非必要
修饰符必须配合,表达式一起使用,否则报错
![在这里插入图片描述](https://img-blog.csdnimg.cn/8876c722b83c4a809b9b15774881b149.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rS-5qOu5pS75Z-O54uu,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
第四部分,@属性选择
常见属性id,class
from表单中的name,a标签里面的title也可以做属性选择
![在这里插入图片描述](https://img-blog.csdnimg.cn/fb13522cbe254fc794f319e70f455403.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rS-5qOu5pS75Z-O54uu,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
XPath内置表达式
需要写在[ ]里面
支持比较运算符,=,>,<
属性比较//*[@id=’u’]
![在这里插入图片描述](https://img-blog.csdnimg.cn/a7b559566c9f45c098f7942982fe2899.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rS-5qOu5pS75Z-O54uu,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
取前3之后的a标签 //a[position()>3]
![在这里插入图片描述](https://img-blog.csdnimg.cn/f0650e86a39242608321ebee94e542af.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rS-5qOu5pS75Z-O54uu,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
支持逻辑运算and和or,not( )
//*[@id=‘container’ or @id=‘u’]
![在这里插入图片描述](https://img-blog.csdnimg.cn/07840d76cc0a41d99f76d56998c561c6.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rS-5qOu5pS75Z-O54uu,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
另外在介绍两个定位函数
preceding-sibling::*定位兄弟元素
//[@id=‘u’]/preceding-sibling::
![在这里插入图片描述](https://img-blog.csdnimg.cn/f54a342d61114bffbf4f12b9532fef00.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rS-5qOu5pS75Z-O54uu,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
…定位父元素
//*[@id=‘u’]/…
![在这里插入图片描述](https://img-blog.csdnimg.cn/1ba6362d19454e8abcb7399b9664bec7.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rS-5qOu5pS75Z-O54uu,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
总结:
1.使用XPath工具,有助于你快速定位元素
2.可以借助XPath工具,验证自己写没写对
3.博主在学习期间收藏了很多实用的小工具,文件比较多,放在群共享了