用于下载的语言/库和解析网页?

时间:2010-03-04 00:32:48

标签: jquery ruby parsing clojure web-crawler

哪种语言和库适合脚本来解析和下载少量网络资源?

例如,某些网站发布伪播客,但不是正确的RSS源;他们只是定期发布包含播放列表的网页的MP3文件。我想编写一个脚本来定期运行并解析链接和播放列表信息的相关页面,下载MP3,并将播放列表放在MP3标签中,以便在我的iPod中很好地显示。我也可以写一些类似的应用程序。

您会推荐哪种语言?我希望该脚本能够在Windows和MacOS上运行。以下是一些替代方案:

  • 的JavaScript 即可。就这样我可以使用jQuery进行解析。我不知道jQuery是否在浏览器之外工作。
  • 的Python 即可。做我想做的事情可能是很好的图书馆支持。但我不喜欢Python语法。
  • 红宝石即可。我之前在Ruby中做过简单的事情(手动解析)。
  • Clojure的即可。因为我想花一点时间。

你最喜欢的语言和图书馆是做什么的?为什么?其他语言是否有类似jQuery的好库?

10 个答案:

答案 0 :(得分:7)

如果你想花一些时间与Clojure(一个非常好的主意IMO!),给Enlive一个机会。 GitHub描述读取

  

基于选择器(àlaCSS)的Clojure模板和转换系统 - Read more

除了对模板有用之外,它还是一个功能强大的webscraping库;有关简单的抓取示例,请参阅this tutorial的初始部分。 (第三个是纽约时报的主页,所以实际上并不像所有那样简单。)

如果你寻找它们,网上还有其他教程; Enlive本身带有一些文档/示例。 (此外,代码总共<1000行且非常易读,但我认为对于熟悉该语言的人来说,这可能不那么简单。)

答案 1 :(得分:6)

答案 2 :(得分:5)

Beautiful Soup(http://www.crummy.com/software/BeautifulSoup/)是一个很好的python库。它专门处理格式错误的标记。

答案 3 :(得分:4)

在ruby中你也有Nokogiri,Nokogiri(锯)是一个HTML,XML,SAX和Reader解析器。 Nokogiri的许多功能包括通过XPath或CSS3选择器搜索文档的能力。

答案 4 :(得分:2)

就像Mikael S提到的那样hpricot是一个很棒的ruby html解析器。但是,对于页面检索,您可以考虑使用屏幕抓取库,如scRUBYtMechanize

答案 5 :(得分:1)

我强烈建议使用Ruby和hpricot库。

答案 6 :(得分:1)

你应该真的给 Python 一个镜头。

当我决定设计一个爬虫时,我通常会重现相同的模式

对于每个步骤,都有一个worker,它从容器(主要是队列)中选择数据。每种类型的工人之间都有容器。在第一次连接目标站点之后,可以对所有类型的工作者进行线程化。所以我们必须使用同步来访问这些队列。

  1. 连接器:来自Session库的requests对象非常出色。
  2. Loader:包含多个threaded个加载器,可以立即启动多个请求。
  3. 解析器: xpath广泛用于使用etree创建的每个lxml对象。
  4. Validator:断言和启发式检查,用于检查已解析数据的有效性。
  5. Archiver:取决于存储的内容,数量和速度,但nosql通常是存储检索数据的最简单方法。例如,mongodbpymongo

答案 7 :(得分:0)

我可能会用PHP,curl和&amp; phpQuery ..但是有很多不同的方式......

答案 8 :(得分:0)

你真的想做什么?如果你想学习Clojure || ruby​​ || C那就做。如果你只想完成任务,那就做最快的事情吧。至少当你说Clojure和图书馆你也说Java和图书馆时,有很多,有些非常好(我不知道它们是什么)。对于上面的红宝石和蟒蛇也是如此。那你想做什么?

答案 9 :(得分:0)

对于Perl中类似jQuery的CSS选择器库,请查看pQuery

另请参阅此前的SO问题,了解HTML解析和放大器的示例。用多种语言进行刮擦。

/ I3az /

相关问题