关闭

Scrapy

381人阅读 评论(0) 收藏 举报
分类:

实现一个功能很简单的爬虫:目标类似论坛,抓取第一个目录页-》提取所有页面-》找出下一个目录页地址-》提取下一目录页的所有页面;

问题描述

运行的时候发现一个问题,抓取的数量不对。例如第一个目录页有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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:169024次
    • 积分:2605
    • 等级:
    • 排名:第14604名
    • 原创:111篇
    • 转载:19篇
    • 译文:0篇
    • 评论:20条
    文章分类
    最新评论