gpt4 book ai didi

python请求http响应500(可以在浏览器中访问网站)

转载 作者:行者123 更新时间:2023-12-04 06:55:32 26 4
gpt4 key购买 nike

我试图找出我在这里做错了什么,但我一直迷路...

在python 2.7中,我正在运行以下代码:

>>> import requests
>>> req = requests.request('GET', 'https://www.zomato.com/praha/caf%C3%A9-a-restaurant-z%C3%A1ti%C5%A1%C3%AD-kunratice-praha-4/daily-menu')
>>> req.content
'<html><body><h1>500 Server Error</h1>\nAn internal server error occured.\n</body></html>\n'

如果我在浏览器中打开它,它会正确响应。我在四处搜寻,发现与urllib库( 500 error with urllib.request.urlopen)类似,但是我无法适应它,甚至我想在这里使用请求。

我可能在这里遇到了一些缺少的代理设置,例如此处的建议( Perl File::Fetch Failed HTTP response: 500 Internal Server Error),但是有人可以向我解释一下,此设置的正确解决方法是什么?

最佳答案

与浏览器请求不同的一件事是用户代理。但是,您可以使用以下请求来更改它:

url = 'https://www.zomato.com/praha/caf%C3%A9-a-restaurant-z%C3%A1ti%C5%A1%C3%AD-kunratice-praha-4/daily-menu'
headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.90 Safari/537.36'}
response = requests.get(url, headers=headers)
print(response.status_code) #should be 200

编辑

某些Web应用程序还将检查 Origin和/或 Referer header (例如,对于AJAX请求);您可以将它们设置为类似于 User-Agent的方式。
headers = {
'Origin': 'http://example.com',
'Referer': 'http://example.com/some_page'
}

请记住,您将这些 header 设置为基本上绕过检查,因此请成为一个好的网民,不要滥用人们的资源。

关于python请求http响应500(可以在浏览器中访问网站),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40442568/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com