使用Google Python API搜索所有Google

2024-05-23 17:42:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我将使用python。我的计划是做一个程序,搜索一堆东西,看看谷歌有多少搜索结果。但我只能想办法让自定义搜索引擎发挥作用。

在python中,如何使用Google API使用Google的主搜索引擎进行简单的搜索?据我所知,在过去几年里,随着谷歌向谷歌应用引擎(google app engine)进军,这一问题的答案发生了变化。


Tags: 答案引擎程序apiappgoogleengine计划
1条回答
网友
1楼 · 发布于 2024-05-23 17:42:46

最近我也在寻找Google搜索API,被很多过时的信息误导了。这是我在谷歌开发者网站上发现的:https://developers.google.com/api-client-library/python/apis/customsearch/v1

根据文件,你的职能是

from googleapiclient.discovery import build


def google_results_count(query):
    service = build("customsearch", "v1",
                    developerKey="[put your API key here]")

    result = service.cse().list(
            q=query,
            cx='[put your CSE key here']
        ).execute()

    return result["searchInformation"]["totalResults"]

print google_results_count('Python is awesome')

不幸的是,使用CSE API将给您提供不同于使用web搜索的结果计数。在上面的例子中,我在Python中得到了2680000,在Google.com上得到了2100000 这里有一个解释为什么:https://support.google.com/customsearch/answer/70392?hl=en

获取API和CSE密钥以及CSE的所有限制是完全不同的,我强烈建议您查看这个答案:https://stackoverflow.com/a/11206266/1704272以及下面的下一个备选答案。

另一种方法是解析来自Google.com的HTML响应,这将为您提供最完整的结果,但它不是非常可靠,因为Google更改了HTML标记。更重要的是,这与他们的任务大纲背道而驰,这里要读的更多:Is it ok to scrape data from Google results?

我的结论。 你有三个选择:

  1. 使用Google CSE API(免费)。如果你需要保持合法性,并且你确定你不会超过限制,那么就用这个。不能在公共应用程序中使用。
  2. 使用付费API(Google或其他任何便宜的)。在任何公开申请中使用它都是合法的,但要准备好为此付出代价。
  3. 抓取谷歌网页。这将给你最好的结果,但我会使用这个选项只为私人需要。

相关问题 更多 >