崔庆才老师爬虫的学习笔记。

一、基本使用

1、选择器是scrapy内置的一个selector对象

测试的网址:https://doc.scrapy.org/en/latest/_static/selectors-sample1.html

2、命令行模式测试

scrapy shell https://doc.scrapy.org/en/latest/_static/selectors-sample1.html # 进入交互模式

response.selector # scrapy内置的选择器的类

response.selector.xpath('//title/text()') # xpath()返回一个Selector的list

response.selector.css('title::text') # css()返回一个Selector的list

response.selector.xpath('//title/text()').extract_first() # extract_first()可以获取具体的内容

response.selector.css('title::text').extract() # extract可以获取具体内容的列表

response.xpath('//title/text()' # 直接用.xpath简写模式,可以省去.selector

response.css('title::text') # .css简写模式

response.xpath('//div[@id="images"]') # 1.首先用xpath定位到这个div标签

response.xpath('//div[@id="images"]').css('img') # 2.然后用css获取img标签的list

response.xpath('//div[@id="images"]').css('img::attr(src)') # 3.接着用::attr获取src属性的列表

response.xpath('//div[@id="images"]').css('img::attr(src)').extract() # 4.最后用extract获取具体的属性值列表

response.xpath('//div[@id="images"]').css('img::attr(src)').extract_first(defaut='') #用default设置默认值,查找不到的话用default代替

response.xpath('//a/@href').extract() # xpath获取属性值

response.css('a::attr(href)').extract() # css获取属性值

response.xpath('//a/text()').extract() # xpath获取内容值

response.css('a::text').extract() # css获取内容值

response.xpath('//a[contains(@href,"image")]/@href').extract() # xpath查找所有a标签下href属性名称包含”image”的超链接值

response.css('a[href*=image]::attr(href)').extract() # css查找所有a标签下href属性名称包含”image”的超链接值

response.xpath('//a[contains(@href,"image")]/img/@src').extract() # xpath查找所有a标签(href属性名称包含”image”)下img标签下src属性值

response.css('a[href*=image] img::attr(src)').extract() # css查找所有a标签(href属性名称包含”image”)下img标签下src属性值

response.css('a::text').re('Name\:(.*)') # 通过re正则匹配,返回的是(.*)里的内容,‘Name\:’是匹配的起始位置

response.css('a::text').re_first('Name\:(.*)').strip() # rere_first返回正则匹配的第一个值,strip()去除前后的空格

持续更新…

最后更新: 2018年08月16日 13:02

原始链接: http://pythonfood.github.io/2018/07/05/Scrapy中选择器用法/

× 多少都行~
打赏二维码