2009-04-07 70 views
12

我想抓取特定的东西。特别是像音乐会,电影,艺术画廊开幕式等等发生的事件。任何人都可能花费时间去做。抓取Internet

如何实现爬网程序?

听说蛴螬(grub.org - >维基)和Heritix(http://crawler.archive.org/

是别人吗?

每个人都有什么意见?

-Jason

回答

3

我认为webcrawler部分将是该任务中最简单的部分。困难的部分将决定哪些网站访问,以及如何发现您想要访问的网站上的事件。也许你想看看如何使用GoogleYahoo API来获得你想要的数据。他们已经完成了在互联网上搜索大量页面的工作 - 无论如何,您可以专注于筛选数据以获得您要查找的事件这一更为棘手的问题。

1

如果您发现爬行互联网变成了一项任务,您可能需要考虑构建RSS aggregator并订阅受欢迎的活动网站(如craigslist和coming.org)的RSS订阅源。

这些网站都提供本地化的可搜索事件。 RSS为您提供了一些(少数)标准化格式,而不必拥有构成网络的所有格式错误的html ...

有一些开源库,如ROME(java),可能有助于RSS提要的消耗。

0

以下Kevin's对RSS提要的建议,您可能想要查看Yahoo pipes。我还没有尝试过,但我认为它们允许您处理多个RSS订阅源并生成网页或更多RSS订阅源。

+1

绝对不要使用管道。这不是非常可靠和非常缓慢。 – mixdev 2010-06-17 10:48:46

4

退房Scrapy。这是一个用Python编写的开源Web爬虫框架(我听说它与Django类似,除了它提供下载它们的页面)。它易于扩展,分布式/并行,看起来非常有前途。

我会使用Scrapy,因为这样我就可以节省我的优势,用于更琐碎的事情,比如如何从刮掉的内容中提取正确的数据等并插入到数据库中。

2

实际编写的比例定向爬虫是一个相当艰巨的任务。我在工作中实施了一个并保持了很长一段时间。除非你写出一个问题并解决问题,否则你不知道存在很多问题。具体处理CDN和友好的网站爬行。自适应算法非常重要,否则您将跳闸DOS过滤器。其实你无论如何都不知道它是否足够大。

事情要考虑:

  • 什么是除了能够吞吐量?
  • 你如何处理网站中断?
  • 如果你被封锁会发生什么?
  • 你想搞隐形爬行(contreversial,实际上很难得到正确的)?

实际上,我写了一些东西,如果我能解决它,我可能会在网上提供有关履带式建筑的信息,因为建造一个合适的建筑比人们告诉你要困难得多。大多数开源爬虫对大多数人来说工作得很好,所以如果你能,我建议你使用其中的一种。哪一个是功能/平台选择。