Ken*_* Ho 3 python django python-requests
我正试图从我的本地服务器上抓取自己的网站.但是当我在它上面使用python请求时,它会给我一个响应503.网上其他普通网站的工作.有什么理由/解决方案吗?
import requests
url = 'http://127.0.0.1:8080/full_report/a1uE0000002vu2jIAA/'
r = requests.get(url)
print r
Run Code Online (Sandbox Code Playgroud)
打印出来
<Response [503]>
Run Code Online (Sandbox Code Playgroud)
经过进一步调查,我发现了类似的问题. 尝试访问localhost:8000时,Python会请求503错误
但是,我认为他还没有解决它.我可以通过Web浏览器访问本地网站,但无法使用requests.get函数进行访问.我也在使用Django来托管服务器.
python manage.py runserver 8080
Run Code Online (Sandbox Code Playgroud)
当我使用:curl -vvv http://127.0.0.1:8080
* Rebuilt URL to: http://127.0.0.1:8080/
* Trying 10.37.135.39...
* Connected to proxy.kdc.[company-name].com (10.37.135.39) port 8099 (#0)
* Proxy auth using Basic with user '[company-id]'
> GET http://127.0.0.1:8080/ HTTP/1.1
> Host: 127.0.0.1:8080
> Proxy-Authorization: Basic Y2FhNTc2OnJ2YTkxQ29kZQ==
> User-Agent: curl/7.49.0
> Accept: */*
>
< HTTP/1.1 301 Moved Permanently
< Server: BlueCoat-Security-Appliance
< Location:http://10.118.216.201
< Connection: Close
<
<HTML>
<HEAD><TITLE>Redirection</TITLE></HEAD>
<BODY><H1>Redirect</H1></BODY>
* Closing connection 0
Run Code Online (Sandbox Code Playgroud)
我不能使用python请求请求本地URL,因为该公司的网络软件不允许它.这是一个死胡同,必须采取其他途径.
编辑:工作解决方案
>>> import requests
>>> session = requests.Session()
>>> session.trust_env = False
>>> r = session.get("http://127.0.0.1:8080")
>>> r
<Response [200]>
Run Code Online (Sandbox Code Playgroud)
也许您应该在请求中禁用代理。
import requests
proxies = {
"http": None,
"https": None,
}
requests.get("http://127.0.0.1:8080/myfunction", proxies=proxies)
Run Code Online (Sandbox Code Playgroud)
参考:
归档时间: |
|
查看次数: |
6772 次 |
最近记录: |