我希望有人能帮助我理解报告的http状态代码中的差异吗?
来自Linux命令行的卷曲….
$curl -ILs https://www.h2o.ai|egrep ^httphttp/1.1 200 OK
Python请求模块…..
>>> import requests>>> url = 'https://www.h2o.ai'>>> r = requests.get(url,verify=True,timeout=3)>>> r.status_code403>>> requests.packages.urllib3.disable_warnings()>>> r = requests.get(url,verify=False,timeout=3)>>> r.status_code403解决方法 好像是python-requests /< version> User-Agent从网站获得403响应:
In [98]: requests.head('https://www.h2o.ai',headers={'User-Agent': 'Foo bar'})Out[98]: <Response [200]>In [99]: requests.head('https://www.h2o.ai')Out[99]: <Response [403]>
如果需要,您可以联系网站所有者,或者只是通过User-Agent标头使用其他用户代理(就像我上面使用的那样).
我是如何调试的:
我使用-v(–verbose)选项运行curl来检查正在发送的标头,然后使用response.request检出相同的请求(假设响应保存为响应).
除了User-Agent标头之外,我没有发现任何显着差异;因此,更改User-Agent标头按预期工作.
总结以上是内存溢出为你收集整理的Curl和Python请求(get)报告不同的http状态代码全部内容,希望文章能够帮你解决Curl和Python请求(get)报告不同的http状态代码所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)