python - python请求,我得到的响应状态与邮递员的结果不同。
问题描述
请求:2.19.1
蟒蛇:3.6
url(就是url,没有特殊含义): http: //moneycake.tistory.com/43
Python代码(实际上是pycharm django代码):
try:
r = requests.head('http://moneycake.tistory.com/43', allow_redirects=False)
print(r.status_code)
except requests.exceptions.RequestException as e:
pass
它返回>>> 403
但是当我使用方法和默认设置在Postman上执行此操作时,GET
它返回200 OK
。
为什么会这样?
以及如何200 OK
在 pycharm 上获得状态响应?
解决方案
您需要设置用户代理:
import requests
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'
}
try:
r = requests.head('http://moneycake.tistory.com/43', allow_redirects=False, headers=headers)
print(r.status_code)
except requests.exceptions.RequestException as e:
pass
输出
200
推荐阅读
- angular - Angular POST 和 .NET Core WEB Api - 401 未经授权的错误/CORS
- python - 如何在 Python 中使用 OCR 提取数字或数字
- javascript - Dynamically created get's lower position why?
- javascript - WEBGL-FBO:为什么渲染调用后 DEPTH_COMPONENT 纹理为空白
- excel - 如何将 VBA .xlam 项目解构为 .cls 和 .frm 文件?
- javascript - 创建 javascript 输入
- c# - Page.xaml 作为其他页面的模型
- python - 加快 Numpy 中的 nd-array 计算
- python - 有没有办法增加 Spyder 中最近项目的最大数量?
- python - 文档图像有哪些好的数据增强技术?