我在和斯皮里一起工作。我想循环遍历一个db表并获取每个scrape(random_form_page)的起始页,然后为每个起始页生成一个请求。请注意,我正在点击一个api来获取带有初始请求的代理。我想设置每个请求都有自己的代理,所以使用回调模型我有:
def start_requests(self):
for x in xrange(8):
random_form_page = session.query(....
PR = Request(
'htp://my-api',
headers=self.headers,
meta={'newrequest': Request(random_form_page, headers=self.headers)},
callback=self.parse_PR
)
yield PR
我注意到:
[scrapy] DEBUG: Filtered duplicate request: <GET 'htp://my-api'> - no more duplicates will be shown (see DUPEFILTER_DEBUG to show all duplicates)
在我的代码中,我可以看到,尽管它循环8次,但它只产生对第一页的请求。我想其他的都被过滤掉了。我已经看过http://doc.scrapy.org/en/latest/topics/settings.html#dupefilter-class,但仍然不确定如何关闭此筛选操作。如何关闭筛选?
使用
当您访问一个API时,您很可能希望完全禁用重复过滤器:
这样您就不必用
dont_filter=True
把所有的请求创建代码都弄乱。相关问题 更多 >
编程相关推荐