访问Google搜索结果

时间:2014-11-23 20:44:07

标签: python google-search

注意:由于我尚未开始使用此项目,因此无法提供任何代码。我不是在寻找能够为我工作的代码。我想要建议和方向。

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

例如:当您在Google搜索中输入查询Premier League Table时,它会返回包含所有信息的精美表格:

enter image description here

我只需要表格中的信息。我用Google搜索了答案并且发现了:

  1. Google应用引擎 - 不要以为我需要这个,因为它看起来更像是一个完成应用后托管应用的平台。
  2. 自定义搜索API(Google) - 付费。我需要一些免费的东西。
  3. pygoogle - 已经死了
  4. duckduckgo API - Duckduckgo搜索并不将表格作为第一个结果。
  5. Selenium - 不是我要找的东西
  6. urllib / BeautifulSoup - 页面源不是HTML(我认为它的AJAX,不确定)。
  7. 任何建议都非常有用

2 个答案:

答案 0 :(得分:1)

查看OpenFooty API,因为它可能包含您正在寻找的信息。结果可以用XML,PHP数组和JSON格式获得。他们似乎有很多不同的信息,但不知道你的要求我不能说它是否适合你。但是,可以肯定的是,它比抓取一堆网站要容易得多。

祝你好运!

答案 1 :(得分: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表达式从表中提取元素。例如,这个是来自该表的20个团队的列表

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 ']