三级页面爬取速度变慢

来源:15-5 django实现elasticsearch的搜索功能 -1

纪年之爱

2018-04-21

老师你好,问一个课外问题,我爬一个网站,共3级页面,其中第二级页面只做中转,不做数据保存。
一级页面有三百多条数据,每条数据对应的一个链接可以跳转到二级页面,二级页面有几十到几百个链接不定,然后每个链接对应一个三级页面。
假如我只爬取一级页面,速度很快,(无关数据量多少,就是纯爬取速度)。
可是如果我要是一级和三级页面一起爬取(以三级页面数据获取速度来讲),刚开始速度特别快,每分钟几百条,而仅仅一会之后,速度下降到每分钟几条。

写回答

1回答

纪年之爱

提问者

2018-04-23

我试了不爬第三层,同时把第二层的网址存到redis里面,第二层共有一千多条网址,
以上操作很快就完成了。
然后我新开了一个爬虫,先用start_requests函数取代start_urls从redis中循环读取网址,
然后yield到parse函数,然后就是类似普通的伯乐网爬取了,
获取传来的网址A里面的数据和下一级网址Bs。
每个A大概有最多一百多个Bs
然后我把Bs传到prase_detail获取具体信息保存到数据库。
结果我发现,竟然比之前的方法更慢,之前的方法是一开始特别快,后来慢,这个方法倒好,一开始就慢到极致

0
6
bobby
回复
纪年之爱
好的, 有些页面快有些页面慢 有可能和网络有关 也有可能和服务器有关,个人感觉和网路关系比较大, 服务器一般不会做这种事情
2018-04-25
共6条回复

Scrapy打造搜索引擎 畅销4年的Python分布式爬虫课

带你彻底掌握Scrapy,用Django+Elasticsearch搭建搜索引擎

5795 学习 · 6290 问题

查看课程