根据事先要求的结果制作scrapy请求?

时间:2015-06-02 16:08:17

标签: python scrapy

我正在抓取每个用户的数据,我不知道整个时间段内是否会有数据。因此,我想首先在很长一段时间内调用API,然后如果有结果,请在该大块内调用API以获得较小的时间增量。我最初尝试抓取大块的数据,但API似乎有一些记录的最大记录显示,有时只显示记录的一部分,导致json格式问题和不完整的数据。根据先前Request对象的响应对象的长度编写一个生成新Request对象的蜘蛛的智能方法是什么?我没有尝试任何东西,因为我能想到的只是在蜘蛛的解析方法中创建请求,但这似乎是错误的。感谢您对我在文档中遗漏的内容提出任何建议/指示。

1 个答案:

答案 0 :(得分:0)

parse方法(或任何其他回调方法,parse只是默认方法)中创建请求是完全正常的。

Scrapy的设计使得任何回调都可以返回数据项或请求列表,并且Scrapy将处理输出处理每个事物的不同内容(将项目发送到管道以存储或者其他任何内容,或者调度新请求 - 可能不同配置回调)。

在下一个Scrapy版本即将发布的概述页面中有更好的解释,你可以偷偷地看一眼:http://scrapy.readthedocs.org/en/master/intro/overview.html

请注意,示例代码使用的是尚未发布的功能(产生dicts,response.urljoin方法),但解释是有效的。