一、基本使用
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