1. scrapy shell :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
是什么? 是一个scrapy的调试工具, 用它来进行调试xpath, 在scrapy shell中测试的是对的, 到代码中肯定是对的
ipython : pip install ipython
使用方式 : scrapy shell url
一般情况下, 在终端的任何位置, 都可以输入这个指令, 正确执行, 如果有二班情况, 你可以建一个工程, 配置好之后, 在工程里面scrapy shell url 进去
在里面可以直接使用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和请求 :
1
2
from scrapy import cmdline
cmdline.execute()
3. 日志信息和错误等级 :
1
2
3
4
5
6
7
8
9
10
11
12
scrapy内置5类错误等级
严重错误 CRITICAL
一般错误 ERROR
警告 WARNING
普通信息 INFO
调试信息 DEBUG
发现bug需要3秒钟, 解决bug需要3个小时, debug却要一辈子
默认等级是DEBUG
配置等级
settings.py中 LOG_LEVEL = 'ERROR' 配置错误等级(一般不使用)
配置写到文件中
LOG_FILE = 'log.txt'
4. 发送post请求 :
1
2
scrapy.FormRequest(url=xxx, formdata=xxx, callback=self.xxx)
如果运行爬虫就想发送post请求, 需要重写start_requests方法

Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36

× 请我吃糖~
打赏二维码