如何使用Nokogiri解析Google搜索结果?

问题描述:

我需要帮助从Google搜索结果中拉取网址,并被告知要使用Nokogiri。我安装了它并阅读了Nokogiri文档,但不知道从哪里开始 - 这对我来说都是希腊文。如何使用Nokogiri解析Google搜索结果?

我知道我要找的是每个结果的URL,每个结果都存在于<cite>标记之间。到目前为止,我能够弄清楚如何做的是拉取搜索结果,但我不知道如何去从文件中提取特定的数据。这是我做的代码的蝇头-点点:

serp = Nokogiri::HTML(open("http://www.google.com/search?num=100&q=*")) 
+1

调查引入nokogiri的使用CSS存取的。他们非常强大,可以帮助你快速转身。从那里你需要挖掘XPath,因为这是我们经常追随节点的方式,无论它们是HTML还是XML。 XPath比CSS强大得多,但这种功能增加了复杂性。另外,作为一个可用性提示,'at'发现第一个出现的东西是'Node',而'search'找到所有出现的东西,返回'NodeSet'。 NodeSet就像一个节点数组,所以你可以迭代它。 – 2011-05-17 15:17:57

享受:)

require 'open-uri' 
require 'nokogiri' 

page = open "http://www.google.com/search?num=100&q=*" 
html = Nokogiri::HTML page 

html.search("cite").each do |cite| 
    puts cite.inner_text 
end 

还看nokogiri tutorials

+0

不要重振旧帖子,但是您知道是否有现代方式来控制Google搜索结果的数量? num查询字符串不再有效。 – 2013-05-17 14:43:28

+0

@DaveLong它适用于我,但我认为有100个结果的硬性限制 – makevoid 2014-03-05 23:54:12

+0

这似乎不再工作,谷歌不喜欢野外解析 – 2015-04-04 15:54:37