使用非常基本的程序在网站上搜索查询并打印出搜索结果,为什么会出现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)
答案 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