2014-11-23 182 views
1

注:我无法提供任何代码,因为我还没有开始此项目的工作。我不是在寻找能够为我工作的代码。我想要建议和方向。访问Google搜索结果

我想知道通过python访问Google搜索结果的最佳方式。

例如:当你输入查询Premier League Table到谷歌搜索将返回一个不错的表的所有信息:

enter image description here

我只需要在表中的信息。我搜索了答案,并碰到:

  1. 谷歌应用程序引擎 - 不要以为我需要这个,因为它看起来更像是一个平台来托管你的应用程序,一旦它完成。
  2. 自定义搜索API(Google) - 其付费。我需要免费的东西。
  3. pygoogle - 它的死者
  4. duckduckgo API - Duckduckgo search不会将表格作为第一个结果。
  5. 硒 - 不是我在找的东西
  6. urllib/BeautifulSoup - 页面源不是HTML(我认为它的AJAX,不确定)。

任何建议都非常有帮助

+1

为什么不从初级资源访问它,如[这一个](http://www.premierleague.com/en-gb/matchday 20支球队名单/league-table.html)? Afaik谷歌只会从最好的结果中汇总这些数据。至于访问搜索结果,我现在知道的最好的解决方案是[this](https://github.com/NikolaiT/GoogleScraper) – pad 2014-11-23 20:54:08

+0

我想要遍历更多这样的表格(团队排名)。它只是我喜欢简单的谷歌布局。官方网站在他们的页面上有很多“额外”的东西,我发现这些东西是不必要的,更不用说有不同的布局,它们需要不同的代码。 – Beginner 2014-11-23 20:59:16

回答

1

退房的OpenFooty API,因为它可能有你正在寻找的信息。结果可以通过XML,PHP数组和JSON格式获得。他们似乎有很多不同的信息,但不知道你的要求,我不能说它是否适合你。但是,可以肯定的是,这比拼凑一些网站要容易得多。

祝你好运!

+0

哇。我不知道这个东西有一个API。真的很有帮助。非常感谢 – Beginner 2014-11-23 21:29:42

0

最好的办法是用硒(这将是更好地使用xvfb的,以避免浏览器中显示出来,我基本覆盖了的情况下,让你开始)

from selenium import webdriver 
from lxml import html as lh 

url = "http://www.google.com/search?q=premier+league+table" 
br = webdriver.Firefox() 
br.get(url) 

tree = lh.fromstring(br.page_source) 

现在你可以使用xpath表达式从表格中提取元素。例如,这个人是从该表

tree.xpath('//div[@class="sol-td-entry"]/text()') 
Out[36]: 
[' Chelsea ', 
' Southampton ', 
' Man City ', 
' Man United ', 
' Newcastle ', 
' West Ham ', 
' Swansea City ', 
' Arsenal ', 
' Everton ', 
' Tottenham ', 
' Stoke City ', 
' Liverpool ', 
' West Brom ', 
' Sunderland ', 
' Crystal Palace ', 
' Hull City ', 
' Aston Villa ', 
' Leicester City ', 
' Burnley FC ', 
' QPR ']