当前位置:  开发笔记 > 编程语言 > 正文

Python请求包返回与浏览器不同的HTTP状态

如何解决《Python请求包返回与浏览器不同的HTTP状态》经验,为你挑选了1个好方法。

我使用以下代码:

import requests
url = 'http://www.transfermarkt.com/'
r = requests.get(url)
r.raise_for_status()

我有以下输出:

HTTPError: 404 Client Error: Not Found for url: http://www.transfermarkt.com/

但链接通常可以从浏览器中运行.为什么会这样?



1> 小智..:

站点管理员已决定该站点应假装不存在于不在其标头中共享其User-Agent的客户端:

>>> import requests
>>> url = 'http://www.transfermarkt.com/'
>>> requests.get(url).raise_for_status()
Traceback (most recent call last):
  File "", line 1, in 
  File "/usr/local/lib/python2.7/site-packages/requests/models.py", line 831, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 404 Client Error: Not Found

你发现了休息时间.设置用户代理:

>>> headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:39.0)'}
>>> requests.get(url, headers=headers).raise_for_status()
>>>

而且你很好.

看起来网站管理员不希望你这样做,所以也许你可以请求许可或询问是否有一种获取内容的首选方式,但没有用户代理设置是技术原因.

推荐阅读
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有