刮痧/解析谷歌搜索结果中的Ruby(Scraping/Parsing Google search r

2019-07-21 13:39发布

假设我有一个谷歌搜索结果页面的完整的HTML。 有谁知道的任何现有代码(红宝石?)凑/解析的谷歌搜索结果的第一页? 理想的情况下,将手柄的购物结果和视频结果可以在任何地方冒出来的部分。

如果没有,什么是对一般屏幕抓取最好的基于Ruby的工具?

为了澄清:我知道,这是很难/不可能得到谷歌的搜索结果编程/ API明智的,简单地卷曲搜索结果页面有很多的问题。 有两个在这里计算器这些点的concensus。 我的问题是不同的。

Answer 1:

这应该是很简单的事情,看看屏幕采用ScrAPI刮由Ryan贝茨投屏幕。 你仍然可以不用刮库,只是坚持喜欢简单的东西引入nokogiri 。

更新:

从引入nokogiri的文件 :

  require 'nokogiri'
  require 'open-uri'

  # Get a Nokogiri::HTML:Document for the page we’re interested in...

  doc = Nokogiri::HTML(open('http://www.google.com/search?q=tenderlove'))

  # Do funky things with it using Nokogiri::XML::Node methods...

  ####
  # Search for nodes by css
  doc.css('h3.r a.l').each do |link|
    puts link.content
  end

  ####
  # Search for nodes by xpath
  doc.xpath('//h3/a[@class="l"]').each do |link|
    puts link.content
  end

  ####
  # Or mix and match.
  doc.search('h3.r a.l', '//h3/a[@class="l"]').each do |link|
    puts link.content
  end


Answer 2:

我不清楚为什么你想成为摆在首位屏幕抓取。 也许REST搜索API会更合适? 它将返回JSON格式的结果,这将是更容易解析,并节省带宽。 例如,如果你的搜索是“富酒吧”,你可以只发送一个GET请求到http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=foo+bar和处理响应。

欲了解更多信息,请参阅本博客文章或官方文件 。



Answer 3:

我建议httparty +谷歌AJAX搜索API



Answer 4:

你应该能够很容易地与完成你的目标机械化 。

编辑:其实,如果你已经有了结果,你需要的是角度来说,Hpricot或引入nokogiri 。



Answer 5:

我不知道具体的Ruby代码,但这个谷歌刮刀可以帮助你。 这是一个在线工具,演示,工程刮解析谷歌的结果。 最有趣的事情是,在PHP解析过程的说明文章有,但它是适用于Ruby和其他编程语言。



Answer 6:

刮痧已成为难当谷歌保持,同时扩大,结果是如何变化的结构(丰富网页摘要,知识图,直接回答,等等),我们建立了处理这种复杂的部分服务,我们确实有一个Ruby库 。 这是非常简单的使用方法:

query = GoogleSearchResults.new q: "coffee"

# Parsed Google results into a Ruby hash
hash_results = query.get_hash


文章来源: Scraping/Parsing Google search results in Ruby