scrapy shell是什么?
它是一种调试工具,常用来调试xpath是否正确。 它有着很智能的交互环境,可以通过tab键智能提醒。使用它之间需要安装依赖包在终端输入命令如下: pip install ipython
scrapy shell的使用
在终端下的任意位置,输入如下指令:scrapy shell url
示例:scrapy shell http://www.gushiking.com/
text 字符串类型
body 字节类型
url 请求的url
status 响应状态码
headers 响应头
示例:response.text
xpath() :提取出来的都是selector对象,需要进行extract()一下,然后再提取出来字符串
css() :根据选择器进行获取指定的内容
ret = response.css('#content-left > div > .author img::attr(src)')
【注】这种获取属性的方式只能在scrapy中使用,bs中不能这么使用
ret = response.css('#content-left > div > .author h2::text')
这种方式获取到的列表,也得extract一下,才能得到想要的字符串
selector对象的介绍:
它是scrapy自己封装的一个对象,不论你上面是通过xpath还是css,获取到的都是这个对象
使用xpath() 、 css()时
extract() : 将对象直接转化为字符串
extract_first() : 功能就等同于
extract_first() == [0].extract() == extract()[0]
如果xpath或者css写错了,返回的是空列表,那么通过后两种方式获取的时候就会报错,但是通过extract_first()来获取会获取到None
示例:ret = response.xpath('//div[@class="pic"]/div[@class="conimg"]/p').extract()[0]