爬虫常用Xpath和CSS3选择器对比

1. 简介

  CSS是来配合HTML工作的,和Xpath对比起来,CSS选择器通常都比较短小,但是功能不够强大。CSS中的空白符' 'Xpath'//'都表示当前元素的所有后代(子孙)元素。

2. 对比

  对于元素(标签)的操作,Xpath和CSS基本上都能通过各自的语法达到相同的动作,并且爬虫中使用的都是一些相对简洁明了的操作。

 结果  CSS3选择器  Xpath表达式
所有元素 *  //*
所有p元素 p  //p
所有p元素的子元素(只选一代) p>*  //p/*
所有父元素为div的p元素 div p //div//p
所有id为foo的元素 #foo   //*[@id="foo"]
所有class为foo的元素 .foo //*[@class="foo"]
拥有某个属性的元素 *[title] //*[@title]
title属性为target的所有元素 *[title="target"] //*[@title="target"]
所有p元素的第一个子元素 p>*:first-child  //p/*[0] 
所有拥有a元素的p元素 无法实现 //p[a]
p元素的下一个兄弟元素 p+* //p/following-sibling::*[0]

3. 参考资料

  • 紫云飞博文
  • CSS选择器参考手册

转载于:https://www.cnblogs.com/strivepy/p/10432619.html

爬虫常用Xpath和CSS3选择器对比相关推荐

  1. 火车浏览器爬虫常用xpath

    火车浏览器爬虫常用xpath 下一页 //a[contains(text(), '下页')] 有标题.有时间:url,title,date,sign,create_date的mysql存储 INSER ...

  2. 四种Python爬虫常用的定位元素方法对比,你偏爱哪一款?

    作者:陈熹 来源:早起Python 在使用Python本爬虫采集数据时,一个很重要的操作就是如何从请求到的网页中提取数据,而正确定位想要的数据又是第一步操作. 本文将对比几种 Python 爬虫中比较 ...

  3. 常用的一些 CSS3 选择器

    *:通用元素选择器 * { margin: 0; padding: 0; } *选择器是选择页面上的全部元素,上面的代码作用是把全部元素的margin和padding设为0,最基本的清除默认CSS样式 ...

  4. python爬虫:scrapy框架xpath和css选择器语法

    Xpath基本语法 一.常用的路径表达式: 表达式 描述 实例 nodename 选取nodename节点的所有子节点 //div / 从根节点选取 /div // 选取所有的节点,不考虑他们的位置 ...

  5. 爬虫之xpath语法-常用节点选择语法

    爬虫之xpath语法-常用节点选择语法 可以通过通配符来选取未知的html.xml的元素 1.1 选取未知节点的语法 通配符 描述 * 匹配任何元素节点. node() 匹配任何类型的节点. 1.2 ...

  6. Python爬虫:Xpath语法笔记

    Python爬虫:Xpath语法笔记 一.选取节点 常用的路劲表达式: 表达式 描述 实例   nodename 选取nodename节点的所有子节点 xpath('//div') 选取了div节点的 ...

  7. WebMagic功能——XPath、CSS选择器、正则表达式 || 抽取元素API、获取结果API || ​​​​​​​获取链接||​​​​​​​使用Pipeline保存结果

    WebMagic功能 实现PageProcessor 抽取元素Selectable WebMagic里主要使用了三种抽取技术:XPath.正则表达式和CSS选择器.另外,对于JSON格式的内容,可使用 ...

  8. python的爬虫库_python做爬虫常用库

    python做爬虫常用库 一.总结 一句话总结: urllib:一系列用于操作URL的功能. requests:基于 urllib 编写的,阻塞式 HTTP 请求库,发出一个请求,一直等待服务器响应后 ...

  9. CSS3 选择器(转)

    http://www.w3school.com.cn/cssref/css_selectors.asp css的选择器,做个记录,在爬虫选择元素里很多要用到. CSS3 选择器 在 CSS 中,选择器 ...

最新文章

  1. 一篇叫做决心书的文章
  2. 猛男把400+条猫咪叫声做成数据集,可识别猫咪的3种不同状态丨开源
  3. 修改服务器名后,sql server的配置处理
  4. typora高级设置字体_Mint(Linux)系统设置优化及其常用软件安装笔记
  5. 【机器视觉】 Halcon设置自动保存
  6. Go netpoller 网络模型之源码全面解析
  7. 毕业设计论文封面模板
  8. 菜鸟python实例_菜鸟学Python,双手奉上老司机给上路新手总结的Python实战问题…...
  9. 协议森林1——小喇叭开始广播:以太网与WiFi
  10. 9.支撑向量机SVM
  11. 关于谷哥传奇工程师Jeff Dean的笑话
  12. Pisces-ORM的思考与设计
  13. 【物联家居】第四章:传输协议--mqtt配置与测试
  14. springAop遇到的问题
  15. Adobe Illustrator AI撤回和取消撤回
  16. C语言程序设计博客作业02
  17. 计算机科学文科学士,计算机科学文科学士与理科硕士
  18. activiti工作流在线表单设计功能(activiti + ueditor + Ueditor Web Form De
  19. 深度学习Pytorch框架
  20. Visual Studio 2022大面积错误无法打开源文件

热门文章

  1. 2-用EasyNetQ连接RabbitMQ(黄亮翻译)
  2. android webview js交互 第一节 (java和js交互)
  3. slf4j与logback的结合使用
  4. java string常用的占位符形式
  5. 当当购书双十一钜惠,5折封顶!附图灵人工智能书单
  6. 开放273项AI能力,创建34万模型,汇聚265万开发者,百度大脑的2020成果一览
  7. ​使用高斯过程回归指导网络轻量化
  8. 人脸识别最新进展——几篇相关论文总结
  9. 行人重识别的挑战与最新进展(35页PPT整理)
  10. CV Code|计算机视觉开源周报20200503期