【发布时间】:2014-02-05 16:35:03
【问题描述】:
我是 Scrapy 和一般网络抓取的新手,所以这可能是一个愚蠢的问题,但它不会是第一次,所以这里是。
我有一个基于教程示例的简单 Scrapy 蜘蛛,它处理各种 URL(在 start_urls 中)。我想对 URL 进行分类,例如URL A、B 和 C 是类别 1,而 URLS D 和 E 是类别 2,然后能够在解析器处理每个 URL 的响应时将类别存储在结果项上。
我想我可以为每个类别设置一个单独的蜘蛛,然后将类别作为属性保存在类中,这样解析器就可以从那里获取它。但我有点希望我可以为所有 URL 设置一个蜘蛛,但告诉解析器对给定 URL 使用哪个类别。
现在,我正在通过我的蜘蛛的 init() 方法在 start_urls 中设置 URL。如何将给定 URL 的类别从我的 init 方法传递到解析器,以便我可以在从该 URL 的响应生成的项目上记录类别?
【问题讨论】:
-
我认为您可以通过覆盖
start_requests()方法,在请求的meta字典中添加“类别”键和值来实现这一点。不远的地方见stackoverflow.com/questions/21556644/…