2010-07-31 48 views
3

我很好奇网站搜刮(即它是如何完成的......),特别是我想写一个脚本来执行网站Hype Machine的任务。 我实际上是软件工程本科(第4年),但是我们并没有真正涵盖任何网络编程,所以我对Javascript/RESTFul API /万维网的理解相当有限,因为我们主要关注理论和客户端应用程序。 任何帮助或指示极大的赞赏。如何抓取Hype Machine等网站?

+0

有趣的是,Hype Machine没有robots.txt,所以看起来他们似乎并不介意任何人刮蹭。 – 2010-08-01 00:10:09

+0

这很有趣...我很好奇为自己编写脚本来下载歌曲,而不必亲自访问网站...... – Setheron 2010-08-01 02:05:51

+0

这是我写回的一篇博客文章:[在.NET中抓取Web](http://www.truewill。净/ myblog/index.php的/ 2007/12/30/web_scraping_in_net)。 – TrueWill 2010-08-01 00:45:25

回答

4

首先要看的是该网站是否已经提供某种结构化数据,或者您是否需要自己解析HTML。看起来像是有一个RSS feed of latest songs。如果这就是你想要的,那么从这里开始会很好。

您可以使用脚本语言来下载并解析它。我使用python,但如果你喜欢,你可以选择不同的脚本语言。这里有一些关于你如何可能download a url in pythonparse XML in python的文档。

当您编写下载站点或RSS源的程序时,需要注意的另一件事是您的脚本运行的频率。如果你有足够的时间运行它,这样你就可以在第二次获得新数据的时候获得新的数据,那么你就会在网站上投入大量的资源,而且他们很可能会阻止你。尽量不要比你需要更频繁地运行你的脚本。

+0

我似乎理解了原始HTML数据的抓取,我也很好奇如何可能会刮这些歌曲。我认为他们通过Flash Player完成。 – Setheron 2010-08-01 02:05:11

0

我相信你必须分析的最重要的事情是你想要提取哪种信息。如果你想提取像谷歌这样的整个网站可能你最好的选择是分析工具,如Apache.org的nutch或者安卓解决方案http://ww.hounder.org如果你需要提取非结构化数据文档上的特定区域 - 网站,docs,pdf - 可能你可以扩展nutch插件来适应特定的需求。 nutch.apache.org

另一方面,如果您需要提取特定文本或网站的剪辑区域,并使用网页的DOM设置规则,那么您需要检查的内容可能与mozenda.com等工具更相关。使用这些工具,您将能够设置提取规则,以便在网站上放弃特定信息。您必须考虑到网页上的任何更改都会给您的机器人带来错误。

最后,如果您打算使用信息来源开发一个网站,您可以从诸如spinn3r.com这样的公司购买信息,因为他们销售的是特定的适合消费的信息。您将能够在基础设施上节省大量资金。希望它有帮助! 塞巴斯蒂安。

0

Python的feedparser模块位于feedparser.org,它实际上处理各种风格的RSS和各种风格的ATOM。没有理由重新发明轮子。

+0

我实际上不得不刮掉HTML以获取其API的密钥;) – Setheron 2012-10-12 18:16:19