python - 如何使用 google api 抓取数据

标签 python google-api web-scraping scrapy python-requests

import requests

def search(query, pages=4, rsz=8):
    url = 'https://ajax.googleapis.com/ajax/services/search/web'
    params = {
        'v': 1.0,     # Version
        'q': query,   # Query string
        'rsz': rsz,   # Result set size - max 8
    }

    for s in range(0, pages*rsz+1, rsz):
        params['start'] = s
        r = requests.get(url, params=params)
        for result in r.json()['responseData']['results']:
            yield result

在最初的 2,3 次尝试中,它正在检索所有需要的页面,但在 2,3 次尝试之后,它没有得到任何结果。它返回“无”或 []。尝试几次后,谷歌会阻止我的 IP 吗?有什么解决办法吗?

最佳答案

我不确定这是否有效,但避免被不鼓励抓取的网站阻止的唯一方法是在检索网页时使用代理。 请检查如何在您的代码中使用代理。

关于python - 如何使用 google api 抓取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34663434/

相关文章:

java - 使用 Java 向 Google Elevation API 发送请求

php - Google PHP API 文件太多

java - HtmlUnit - getByXPath 元素类型未知

python - 尝试提取 URL 时使用 Urllibopener 时引发 HTTP 错误

google-apps-script - 启用 Google API OAuth 范围

python - lxml 树头和其他一些元素损坏

python - 如何让 `pip install --editable` 运行 sdist 而不是开发?

python - Google bigquery python 客户端库 SQL 选择正则表达式错误

python - 当我的计算机上有 Python 2、Python 3 和 Anaconda 时,如何控制将包 pip 安装到哪个 Python 发行版?

python - 从具有多重继承的类中检索参数