打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
一文学会Python爬虫框架scrapy的XPath和CSS选择器语法与应用

Scrapy使用自带的XPath选择器和CSS选择器来选择HTML文档中特定部分的内容,XPath是用来选择XML和HTML文档中节点的语言,CSS是为HTML文档应用样式的语言,也可以用来选择具有特定样式的HTML元素。使用XPath选择器和CSS选择器解析网页的速度要比BeautifulSoup快一些。

读取目标网页成功后,自动调用回调函数parse(),在回调函数parse()中使用response对象表示服务器返回的网页源代码,response对象的selector属性可以创建相应的选择器对象,然后再调用xpath()或css()方法获取指定的内容,也可以直接使用response对象的xpath()和css()方法进行选择,然后调用get()方法获取第一项结果、调用getall()和extract()方法获取包含所有结果的列表、调用re()和re_first()方法使用正则表达式对提取到的内容进行二次筛选(后者只返回第一项结果)。

表1  XPath选择器常用语法

语法示例

功能说明

div

选择当前节点的所有div子节点

/div

选择根节点div

//div

选择所有div节点,包括根节点和子节点

//ul/li

选择所有ul节点的子节点li

//div/@id

选择所有div节点的id属性

//title/text()

选择所有title节点的文本

//div/span[2]

选择div节点内部的第2span节点

//div/a[last()]

选择div节点内部最后一个a节点

//div/a[last()-1]

选择div节点内部倒数第二个a节点

//a[position()>3]

选择每组中第4个开始往后的a节点

//a[starts-with(@href, "i")]

选择所有href属性以"i"开头的a节点

//a[contains(@href, "image")]

选择所有href属性中包含"image"a节点

//a[contains(@href, "image") and contains(@href, "4")]

选择所有href属性同时包含"image""4"a节点

//@src

选择所有节点的src属性

//@*

选择所有节点的任意属性

//img[@src]

选择所有具有src属性的img节点

//div[@id="images"]

选择所有id="images"div节点

//img | //title

选择所有imgtitle节点

//br//../img

选择所有br节点的父节点下面的img子节点

./img

选择当前节点中的所有img子节点

表2  CSS选择器常用语法

语法示例

功能说明

#images

选择所有id=images的所有节点

.redText

选择所有class=redText的节点

ul li

选择所有位于ul节点内部的li子节点

ul>li

选择所有位于ul节点内的直接子节点li

base+title

选择紧邻base节点后面的第一个平级title节点

br~img

选择所有与br节点相邻的平级img节点

div#images [href]

选择id=imagesdiv中所有带有href属性的子节点

div:not(#images)

选择所有id不等于imagesdiv节点

a:nth-child(3)

选择第3a节点

a:nth-child(2n+1)

选择所有第奇数个a节点

a:nth-child(2n)

选择所有第偶数个a节点

li:last-child

选择每组中最后一个li节点

li:first-child

选择每组中第一个li节点

[href$=".html"]

选择所有href属性以".html"结束的节点

[href^="image"]

选择所有href属性以"image"开头的节点

a[href*="3"]

选择所有href属性中包含"3"a节点

测试网页(4index.html,后台发送消息“选择器”获取下载地址):

演示代码:

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
python爬虫:scrapy框架xpath和css选择器语法
在Scrapy中如何利用CSS选择器从网页中采集目标数据——详细教程(上篇)
Selenium(四)——webdriver 之定位页面元素
xpath与css_selector定位详解
Scrapy中选择器的用法
jquery选择器
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服