我有一个相对简单的案例。我基本上想存储各种网站之间的链接数据,不想限制域名。我知道我可以使用一些http客户端库编写自己的爬虫程序,但我觉得我会做一些不必要的工作--确保页面不会被多次检查,弄清楚如何读取和使用robots.txt文件,甚至可能尝试使其并发和分布式,我确信还有很多其他我还没有想到的事情。
因此,我想要一个网络爬行框架,它可以处理这些事情,同时允许我决定如何处理响应(在我的例子中,只提取链接并存储它们)。大多数爬虫似乎认为你是在为搜索索引网页,这不好,我需要一些可定制的东西。
我希望将链接信息存储在MongoDB数据库中,因此我需要能够指定链接在框架中的存储方式。虽然我已经将这个问题标记为语言不可知,但这也意味着我必须将选择限制在MongoDB支持的语言(Python、Ruby、Perl、PHP、Java和C++)中,这是一个非常广泛的网。我更喜欢动态语言,但我对任何建议都持开放态度。
我已经找到了Scrapy (看起来很整洁)和JSpider (基于121页的用户手册,它看起来不错,但可能有点“繁重”),但我想看看有没有其他我遗漏的好选择。
发布于 2009-08-23 18:44:16
我想你自己已经搜索过Stack Overflow了,因为在这些标记的web-crawler中有相当多类似的问题?由于没有广泛使用以下任何一项,我避免详细说明,只列出一些我认为值得为手头的任务复习的内容:
和Python
的更多细节。
:
非常成熟的项目,很好的documented.,
好了,祝你的评论好运;)
发布于 2017-01-04 23:37:22
您还可以在Node.JS中尝试使用CasperJS和PhantomJS。
发布于 2017-11-23 04:42:58
当这个问题被问到的时候,StormCrawler不在身边,但他非常适合这个问题。它是用Java编写的,具有高度的模块化和可伸缩性,并且可以根据上面的描述进行定制。
https://stackoverflow.com/questions/1305997
复制相似问题