您的位置:首页 > 其它

scrapy用到的一些配置问题

2017-11-07 19:24 176 查看

从settings开始

scrapy默认只处理200-300的状态码,当有特殊状态码出现的时候就需要自己将要处理的状态码添加进去,然后判断response.status

HTTPERROR_ALLOWED_CODES = [403]

有些网站会检测出scrapy的cookie值,因此要禁用cookie,注意这个禁用的只是scrapy自己的cookie而不是设置的

COOKIES_ENABLED = False

有些重定向挺烦人

REDIRECT_ENABLED = False


超时等待时间过长,会影响爬虫速度,可以根据实际情况调整超时时间以及是否重试

DOWNLOAD_TIMEOUT=30[code]0
RETRY_ENABLED   是否开启重试
RETRY_TIMES     重试次数

[code]RETRY_HTTP_CODECS
对哪些状态码进行重试,默认是500,502,503,504,408
[/code]
[/code]


电脑cpu配置比较好的可以修改并发数量

CONCURRENT_REQUESTS = 32


设置爬虫暂停、恢复的状态保存

JOBDIR=filename


配置请求头的三个位置

 spider中发送请求的时候,优先级最高

middleware中利用requests.headers.setdefault()循环便利便利一个字典设置的优先级次之

在settings中DEFAULT_REQUEST_HEADERS={}设置的优先级最低

运行爬虫时可以进行的操作

CLOSESPIDER_TIMEOUT
(秒)、
CLOSESPIDER_ITEMCOUNT
CLOSESPIDER_PAGECOUNT
CLOSESPIDER_ERRORCOUNT
分别代表在指定时间过后、在抓取了指定数目的
Item
之后、在收到了指定数目的响应之后、在发生了指定数目的错误之后就终止爬虫程序

 
scrapy crawl fast-s CLOSESPIDER_TIMEOUT=10


设置这个爬虫项目运行10s停止

scrapy crawl somespider -s JOBDIR=crawls/somespider-1

这个也可以让爬虫实现暂停和恢复,使用ctrl+c暂停,恢复仍然使用这句话
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  scrapy