我正在尝试从页面获取一些数据,但返回错误 [403 Forbidden]。
我以为是用户代理,但我尝试了几个用户代理,它仍然返回错误。
我还尝试使用库 fake user-agent但我没有成功。
with requests.Session() as c:
url = '...'
#headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2224.3 Safari/537.36'}
ua = UserAgent()
header = {'User-Agent':str(ua.chrome)}
page = c.get(url, headers=header)
print page.content
当我手动访问该页面时,一切正常。
我正在使用 python 2.7.14 和 requests library , 有什么想法吗?
最佳答案
网站可能会使用请求中的任何内容来触发拒绝。
因此,从您的浏览器发出的请求中复制所有 header 。然后将它们一一删除1,找出哪些是必不可少的。
根据 Python requests. 403 Forbidden , 要向请求添加自定义 header ,请执行以下操作:
result = requests.get(url, headers={'header':'value', <etc>})
1更快的方法是 delete half of them each time相反,但这更复杂,因为可能有多个基本 header
关于python - 从简单的 get 返回 403 Forbidden 但在浏览器中加载正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49542986/