将Google搜索返回到Python

时间:2010-12-06 06:32:45

标签: python search urllib2

我正试图从Google搜索中获得前20个结果。 当我使用urllib2.urlopen()时,它会给我一个错误,并说我被禁止了。 我听说它与伪造用户代理字符串有关,但我没有urllib2经验,如果有人可以提供帮助,我将非常感激。

谢谢, giodamelio

3 个答案:

答案 0 :(得分:2)

基本上有两种方法 - 直接访问Google API或使用xGoogle包。

Gooogle自己的API

Google的JSON\Atom API要求您获取帐户和密钥。它是以自动方式进行搜索的标准和首选方式,这意味着您不会被禁止使用其服务。请求非常简单(引用谷歌自己的例子):

GET https://www.googleapis.com/customsearch/v1?
            key=INSERT-YOUR-KEY&cx=017576662512468239146:omuauf_lfve&q=lectures

您将获得JSON响应,可以使用大量Python包轻松处理。

xGoogle

xgoogle package有点快(请参阅Lakshman Prasad's answer),但Google可能会阻止(或更糟,得错或空答案),导致程序停止工作。

利弊

如果您只是需要为项目完成一些搜索,请使用xGoogle。如果您的程序需要更长时间,并且您的搜索没有被阻止,请花费15分钟来使用其API。

答案 1 :(得分:2)

你应该只使用一个可以完成所有艰苦工作的库。

xGoogle可让您将搜索结果列入列表

从示例中,

from xgoogle.search import GoogleSearch
gs = GoogleSearch("quick and dirty")
gs.results_per_page = 50
results = gs.get_results()

答案 2 :(得分:2)

req = urllib2.Request(url)
req.add_header('User-Agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3')
response = urllib2.urlopen(req)