使用请求在Python中搜索网站时出现502错误

时间:2017-04-05 19:09:45

标签: python python-requests

使用非常基本的程序在网站上搜索查询并打印出搜索结果,为什么会出现502错误?

import requests
from bs4 import BeautifulSoup
import re

def main():
    url = "https://www.last10k.com/Search"
    dat = {'q':'goog'}
    resp = requests.get(url, params=dat)
    print(resp.content)

2 个答案:

答案 0 :(得分:1)

我遇到了这个问题,发现混合了查看内容并通过浏览器尝试请求帮助我找到了解决方案。也许它也会帮助你,所以这就是我所做的:

我的浏览器请求成功,然后使用python失败。网址是一样的。所以我使用了调试器。您也可以简单地打印东西,但调试器会显示所有内容,并让您探索原本错过的内容。我发现失败的python-request上的响应内容是一条错误消息,它会成为一个红宝石问题。

所以在远程端有一些不同的行为,但是是什么原因造成的呢?按照建议添加User-Agent标头很不错,但没有改变任何东西。所以我查看了其他标头,发现基本身份验证字符串看起来完全不同。

我的解决方案:由于我做了一些重构而远程方处理了“权限被拒绝”结果,我用错误的身份验证数据提供了python请求,最终导致了502而不是403。

答案 1 :(得分:0)

定义User-Agent标头。像这样:

import requests

def main():
    url = "https://www.last10k.com/Search"
    dat = {'q':'goog'}
    resp = requests.get(url, params=dat, headers={'User-Agent': 'Mozilla/5.0'})
    print(resp.status_code)

为什么要求这个? Wikimedia User-Agent policy

相关问题