Scrapy
来源:互联网 发布:淘宝生产许可证编号 编辑:程序博客网 时间:2024/04/29 19:53
实现一个功能很简单的爬虫:目标类似论坛,抓取第一个目录页-》提取所有页面-》找出下一个目录页地址-》提取下一目录页的所有页面;
问题描述
运行的时候发现一个问题,抓取的数量不对。例如第一个目录页有15条,第二个目录页有20条,那么最终应该抓取到35条,但是实际发现最终抓取到的条目是随机的……
试着分开抓,第一次只抓第一个目录页,返回了15条没错;第二次只抓第二个目录页,返回了20条没错;一起抓的时候,返回结果依然随机,25-35之间都有可能。
原因
找了半天发现代码没什么问题,由于之前将log_level设为了“warning”,因此也没有给出什么提示。将其改为默认,发现问题了。
在抓取具体条目时,返回了很多503错误,而scrapy会对每个503错误尝试3次,如果依然出错就直接扔掉这个页面。看了一下scrapy最后的stats,发现503有19个之多……
按此推理,应该是访问太频繁被服务器拒了!
解决办法
首先想的是限制并发数量,在settings.py里修改,加上:
CONCURRENT_REQUESTS = 1
后边的数值是并发限制,发现只有修改为1的时候才能完全不会出错,即使是2都有条目丢失的问题……
0 0
- scrapy
- Scrapy
- scrapy
- Scrapy
- Scrapy
- Scrapy
- Scrapy
- Scrapy
- scrapy
- Scrapy
- scrapy
- Scrapy
- Scrapy
- Scrapy
- scrapy
- scrapy
- scrapy
- Scrapy
- WEBI交叉表与Dashboard解决方法
- JAVA基础----java中E,T,?的区别?
- iOS block的用法
- C和C++内存模型
- BTC比特币钱包性能优化
- Scrapy
- 软件开发:需求分析的20条法则
- 如何进行移动端的页面开发?
- 导航栏上的 barbutton放置button
- block在俩个UIViewController间传值
- 点开通知栏,回到原界面
- 利用block封装网络请求类
- 验证hadoop伪分布式
- 如何禁止listview的item项获得焦点,而让item的子控件获得焦点