请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

三级页面爬取速度变慢

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

正在回答 回答被采纳积分+3

1回答

提问者 纪年之爱 2018-04-23 09:05:59

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

0 回复 有任何疑惑可以回复我~
  • bobby #1
    你有没有打印过时间 到底是服务器返回慢 还是保存数据库慢?
    回复 有任何疑惑可以回复我~ 2018-04-23 10:35:50
  • 提问者 纪年之爱 回复 bobby #2
    老师,你好,scrapy中怎么打印服务器响应时间和数据库响应时间,分别在哪里打印,以伯乐网爬取为例的话
    回复 有任何疑惑可以回复我~ 2018-04-24 22:42:30
  • 提问者 纪年之爱 回复 bobby #3
    我把保存到数据库的代码给注释了,发现只是请求以及解析的速度依然很慢,看来问题应该是出在这个上面,但是这个应该怎么解决呢?
    回复 有任何疑惑可以回复我~ 2018-04-24 22:51:32
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信