【问题标题】:How to scrape data using google api如何使用 google api 抓取数据
【发布时间】:2016-04-12 07:58:41
【问题描述】:
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?有什么解决办法吗?

【问题讨论】:

  • 检查r.status_coder.text。也许有任何信息。

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


【解决方案1】:

问题是使用 requests 和 BeautifulSoup 解决的。

import requests, import BeautifulSoup
url = 'http://www.google.com/search'
payload = { 'q' : strToSearch, 'start' : str(start), 'num' : str(num) }
r = requests.get( url,params = payload, auth=('user', 'pass')) 
subSoup = BeautifulSoup( subR.text, 'html.parser' )
text = soup.get_text(separator=' ')       

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-16
      相关资源
      最近更新 更多