如何在Ruby中编写Web scraper?

mar*_*ion 17 ruby web-scraping

我想抓取一个没有API的流行网站(比如Quora)并获取一些特定信息并将其转储到文件中 - 比如csv,.txt或.html格式很好:)

例如,只返回Quora用户的所有'Bios'列表,这些用户在其公开信息中列出了职业'UX设计师'.

我如何在Ruby中做到这一点?

我对Ruby&Rails的工作方式有足够的了解.我刚刚完成了一个Rails应用程序 - 主要是我自己编写的.但是,无论想象力如何,我都不是大师.

我了解RegExs等

Geo*_*Geo 21

你最好的选择是使用Mechanize.它可以跟随链接,提交表单,你需要的任何东西,web客户端.顺便说一句,不要使用正则表达式来解析HTML.使用HTML解析器.


Fel*_*ima 7

如果你想要更高级别的东西,试试wombat,这是我在Mechanize和Nokogiri之上建造的这个宝石.它能够使用非常简单的高级DSL解析页面并跟踪链接.


Fil*_*eca 6

我知道答案已被接受,但Hpricot在解析HTML方面也很受欢迎.

您所要做的就是查看页面的html源代码并尝试查找与所需元素匹配的XPath或CSS表达式,然后使用以下内容:

doc.search("//p[@class='posted']")
Run Code Online (Sandbox Code Playgroud)