我是靠谱客的博主 玩命小丸子,最近开发中收集的这篇文章主要介绍提高scrapy的爬取效率,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

增加并发:

默认scrapy开启的线程数为32个,可以适当进行增加,在seeting配置文件中修改councurrent_requests=100

降低日志等级:

在运行scrapy运行时,会有大量日志输出,为了减少cpu的使用率,可将日志等级设置为log=errorlog=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的爬取效率所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部