【发布时间】:2013-07-06 08:39:46
【问题描述】:
我有一个需要进行大量数据抓取的项目。
我一直在研究 Scrapy,到目前为止我对它印象非常深刻,但我正在寻找执行以下操作的最佳方法:
1) 我想抓取多个 URL 并为要抓取的每个 URL 传递相同的变量,例如,假设我想要从 Bing、Google 和 Yahoo 返回关键字“python”的最高结果。
我想抓取 http://www.google.co.uk/q=python、http://www.yahoo.com?q=python 和 http://www.bing.com/?q=python(不是实际的 URL,但你明白了)
我找不到使用关键字指定动态 URL 的方法,我能想到的唯一选择是在 PHP 或其他构建 URL 的文件中生成一个文件,并指定 scrapy 来抓取 URL 中的链接。
2) 显然每个搜索引擎都有自己的标记,因此我需要区分每个结果以找到相应的 XPath 以从中提取相关数据
3)最后,我想将抓取项目的结果写入数据库(可能是 redis),但只有当所有 3 个 URL 都完成抓取后,基本上我想从 3 个中建立一个“配置文件”搜索引擎并将输出的结果保存在一个事务中。
如果有人对这些观点有任何想法,我将不胜感激。
谢谢
【问题讨论】:
-
你可能想看看 scrapyd doc.scrapy.org/en/latest/topics/scrapyd.html
-
除了我对 #1 的想法之外,我还希望在 'parse' 方法中使用 URL 的 case 语句的组合来处理 #2 和 #3,并构建一个通用的 Item 来获取 XPath 值.不过我敢肯定有一种更简单的方法