如何使用多个页面刮取网站,并使用Ruby创建一个单独的html页面?

时间:2011-11-05 17:41:17

标签: ruby hpricot

所以我想做的就是抓住这个网站:http://boxerbiography.blogspot.com/ 并创建一个HTML页面,我可以打印或发送到我的Kindle。

我正在考虑使用Hpricot,但我不太清楚如何继续。

如何设置它以便递归检查每个链接,获取HTML,将其存储在变量中或将其转储到主HTML页面然后返回到目录并继续这样做?

你不必告诉我如何做到这一点,而只是我可能想要接近它的理论背后。

我是否真的必须查看其中一篇文章的来源(这非常难看),例如: view-source:http://boxerbiography.blogspot.com/2006/12/10-progamer-lim-yohwan-e-sports-icon.html并手动编程脚本以在某些标签之间提取文本(例如h3,p,等)?

如果我这样做,那么我将不得不查看每个章节/文章的每个单独的来源,然后这样做。有点打败写剧本的目的,不是吗?

理想情况下,我想要一个脚本,它能够区分JS和其他代码之间的区别,只有'文本'并将其转储(使用正确的标题等格式化)。

非常感谢一些指导。

感谢。

1 个答案:

答案 0 :(得分:1)

我建议使用 Nokogiri 而不是Hpricot。它更强大,使用更少的资源,更少的错误,更容易使用,更快。

为了按时完成工作,我做了一些大量的工作,并且不得不切换到Nokogiri,因为Hpricot会在某些页面上无法解释地崩溃。

检查此RailsCast:

http://railscasts.com/episodes/190-screen-scraping-with-nokogiri

http://nokogiri.org/

http://www.rubyinside.com/nokogiri-ruby-html-parser-and-xml-parser-1288.html

http://www.engineyard.com/blog/2010/getting-started-with-nokogiri/