如何使用Python中的请求搜索google

如何使用Python中的请求搜索google,python,python-requests,Python,Python Requests,我试着运行代码 然而,我要传达以下信息 我遗漏了一些参数吗 使用请求获取搜索的正确方法应该是什么 多谢各位 当Google自动检测到来自您的计算机网络的请求似乎违反了。这些请求停止后,该块将很快过期。同时,解决上述验证码将允许您继续使用我们的服务。此流量可能是由恶意软件、浏览器插件或发送自动请求的脚本发送的。如果共享网络连接,请向管理员寻求帮助—可能是使用相同IP地址的不同计算机造成的如果您使用的是已知机器人使用的高级术语,或者发送请求非常快,有时可能会要求您解决验证码问题。 imp

我试着运行代码

然而,我要传达以下信息

我遗漏了一些参数吗

使用
请求
获取搜索的正确方法应该是什么

多谢各位

当Google自动检测到来自您的计算机网络的请求似乎违反了。这些请求停止后,该块将很快过期。同时,解决上述验证码将允许您继续使用我们的服务。

此流量可能是由恶意软件、浏览器插件或发送自动请求的脚本发送的。如果共享网络连接,请向管理员寻求帮助—可能是使用相同IP地址的不同计算机造成的

如果您使用的是已知机器人使用的高级术语,或者发送请求非常快,有时可能会要求您解决验证码问题。

import requests 
from bs4 import BeautifulSoup

headers_Get = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0',
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
        'Accept-Language': 'en-US,en;q=0.5',
        'Accept-Encoding': 'gzip, deflate',
        'DNT': '1',
        'Connection': 'keep-alive',
        'Upgrade-Insecure-Requests': '1'
    }


def google(q):
    s = requests.Session()
    q = '+'.join(q.split())
    url = 'https://www.google.com/search?q=' + q + '&ie=utf-8&oe=utf-8'
    r = s.get(url, headers=headers_Get)
    return r.text

result = google('"apple"')

我在谷歌上用过这个,效果很好:

import requests
from urllib.request import Request, urlopen
import urllib
from bs4 import BeautifulSoup

headers = {"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit 
537.36 (KHTML, like Gecko) Chrome",
"Accept":"text/html,application/xhtml+xml,application/xml; 
q=0.9,image/webp,*/*;q=0.8"}

def google(q):
    q = '+'.join(q.split())
    url = 'https://www.google.com/search?q=' + q + '&ie=utf-8&oe=utf-8'
    reqest = Request(url,headers=headers)
    page = urlopen(reqest)
    soup = BeautifulSoup(page)
    return r.text

谷歌为你提供该页面正是因为他们不希望你做你正在做的事情。(而且,取决于你住在哪里,故意规避他们的服务条款可能会带来法律后果。)你可以改变你发送的请求,暂时愚弄谷歌,但不要指望永远愚弄他们。你真的不想与谷歌展开军备竞赛。谷歌禁止机器人/爬虫利用他们的搜索来阻止人们使用他们的资源构建替代搜索引擎。它们的检测能力非常先进,不仅包括检查请求头,还使用复杂的Javascript技术检测鼠标/键盘交互、网络流量和其他各种情况。你不太可能击败谷歌的机器人检测系统。。。但一般来说,要在大多数站点上阻止bot检测,您只需传递请求头(请求允许您这样做)类似于像Firefox这样的普通浏览器。可能与@J.Taylor重复:他已经发送了一个
用户代理
标题,声称是Firefox。这个答案描述了如何创建自定义搜索和API键来搜索整个web