深入理解Scrapy框架
1、scrapy shell
scrapy shell是一个scrapy的调试工具,用它来进行调试xpath,在scrapy shell中测试的是对的,到代码中肯定是对的。
安装 pip install ipython
使用方式:scrapy shell url
在ipython中可以直接使用response
response.xpath() 得到一个列表,里面都是selector对象
ret[0].extract === ret.extract()[0] == ret.extract_first()如果xpath写错了,extract_first会返回None,前面连个会抛出异常
scrapy里面不仅集成了xpath,还集成了bs,也可以使用选择器查找元素
response.css(选择器)
获取文本内容
ret = response.css('#content-left > div h2::text')
获取属性
ret = response.css('#content-left > div img::attr(src)')
item对象
这个对象在使用的时候和字典的用法一模一样
item['name'] = xxx
item['age'] = xxx
可以将对象快速的转化为字典
d = dict(item)
2、yield item和请求
from scrapy import cmdline
cmdline.execute()
3、日志信息和错误等级
scrapy内置5类错误等级
python
严重错误 CRITICAL
一般错误 ERROR
警告 WARNING
普通信息 INFO
调试信息 DEBUG
发现bug需要3秒钟,解决bug需要3个小时,debug却要一辈子
默认等级是DEBUG
配置等级
LOG_LEVEL = 'ERROR'
配置写到文件中
LOG_FILE = 'log.txt'
4、发送post请求
python
scrapy.FormRequest(url=xxx, formdata=xxx, callback=self.xxx)
如果运行爬虫就想发送post请求,需要重写start_requests方法
5、使用Scrapy框架爬取图片
见代码