概述
增加并发:
默认scrapy开启的线程数为32个,可以适当进行增加,在seeting配置文件中修改councurrent_requests=100
降低日志等级:
在运行scrapy运行时,会有大量日志输出,为了减少cpu的使用率,可将日志等级设置为log=error或log=info
禁用cookie:
如果不是真的需要使用cookie,可以直接禁用cookie,提升爬取效率。cookie_enabled=false
禁止重试:
对失败的HTTP请求重新请求会减慢爬取速度,可以禁止重试。retry_enabled=false
减少下载超时:
对一个非常慢的链接进行爬取会很卡,减少下载超时,这样的链接会被放弃,提升爬取的效率。download_timeout=10 超时时间10S
关于增量式爬虫:
是指对指定的页面进行数据爬取后,待页面数据更新后,能再次对页面进行爬取,且只会爬取新的数据,已经爬取的数据不会操作。
重点在于不会爬取重复的数据,这就会用到数据指纹了。
通常增量式爬取的内容表现为:
1.爬取主页面链接中详情页面的数据,会对详情页面进行url去重判断。
以redis为例:
URL去重:电影详情信息
向redis中写入一条新数据,其返回值为1,表示新数据可以存储。失败返回值为0,表示已存在相同数据。
直接判断URL是否已存在,以键值对方式插入Redis,返回值若为1,对当前URL手动发送请求抓取数据,反之提示无新数据
文本去重:新闻头条
对文本去重,无法直接判断URL,都在同一个链接下,刷新就会有新数据。
通常会选择文本标题和作者等动态文本拼接字符串,用hash sha256或者其他不可逆加密方式,获取文本唯一标识,
存储到Redis中,如再次添加相同文本,则密文必然重复,返回值必定为0,不予发送请求即可。
转载于:https://www.cnblogs.com/wen-kang/p/10972806.html
最后
以上就是玩命小丸子为你收集整理的提高scrapy的爬取效率的全部内容,希望文章能够帮你解决提高scrapy的爬取效率所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复