【发布时间】:2016-03-23 16:08:25
【问题描述】:
我认为scrapy 的框架可能有点不灵活。而且我找不到适合我的问题的解决方案。
这是我现在面临的问题。
有一个网站,比如说,http://example.com/。我想从中删除一些信息。
它有许多是http://example.com/item/([0-9]+) 形式的网址,现在我拥有有效([0-9]+) 的列表,其中包含大约300 万 个索引ID ,完成整个网页的抓取工作似乎是一个简单的任务。
但是,这个任务的结构是这样的:
-
/item/的页面上有很多物品的数据。我想要这些信息,这很容易实现。 - 有链接指向与项目相关的实体,例如链接路径为
/owner/的item owner,或链接路径为/collection/的the collections the item belongs等。我想要这些实体的所有独特信息,这很难实现。它们不应该是item的嵌套项或被单蜘蛛报废,原因如下:-
单个
owner拥有[1-n]项。 -
单个项有
[1-n]owners。 - 与
collection相同。
-
单个
- 有链接指向与该项目相关的其他实体,例如链接路径为
/comment/的comment或链接路径为/user/的user。显然,明智的做法是将comment或user信息与item分开,并使用key 或index 来引用实体。这是单蜘蛛很难做到的。
所以,我更喜欢启动一个蜘蛛来处理http://example.com/item/([0-9]+)的列表,并使用其他类型的蜘蛛来分别处理item owner、collection、comment和user。
但是,问题是我没有item owner、collection、comment 和user 的列表。我只能通过迭代http://example.com/item/([0-9]+)的网页来遍历所有这些实体。
我搜索了很多,但没有找到适合我的问题的解决方案。请随时发表您的意见。
【问题讨论】:
标签: python web web-crawler scrapy