503尝试在本地网站上使用python请求时响应

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)

Ken*_* Ho 8

我不能使用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)


Che*_*ang 5

也许您应该在请求中禁用代理。

import requests

proxies = {
  "http": None,
  "https": None,
}

requests.get("http://127.0.0.1:8080/myfunction", proxies=proxies)
Run Code Online (Sandbox Code Playgroud)

参考:

  1. /sf/answers/2482917181/
  2. https://2.python-requests.org//en/master/user/advanced/#proxies