503尝试在本地网站

时间:2016-11-04 19:54:45

标签: python django python-requests

我试图从本地服务器上抓取自己的网站。但是当我在它上面使用python请求时,它会给我一个响应503.网上其他普通网站的工作。有什么理由/解决方案?

import requests 
url = 'http://127.0.0.1:8080/full_report/a1uE0000002vu2jIAA/'

r = requests.get(url)

print r

打印出来

<Response [503]>

经过进一步调查,我发现了类似的问题。 Python requests 503 erros when trying to access localhost:8000

但是,我不认为他已经解决了。我可以通过网络浏览器访问本地网站,但无法使用requests.get功能进行访问。我也使用Django来托管服务器。

python manage.py runserver 8080 

当我使用时:     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

4 个答案:

答案 0 :(得分:6)

我无法使用python请求请求本地URL,因为该公司的网络软件不允许这样做。这是一个死胡同,必须采取其他途径。

编辑:工作解决方案

>>> import requests
>>> session = requests.Session()
>>> session.trust_env = False
>>> r = session.get("http://127.0.0.1:8080")
>>> r
<Response [200]>

答案 1 :(得分:0)

HTTP Error 503表示:

  

由于服务器临时过载或维护,Web服务器(运行Web站点)当前无法处理HTTP请求。这意味着这是一个暂时的条件,经过一段时间的延迟后会得到缓解。处于此状态的某些服务器也可能只是拒绝套接字连接,在这种情况下可能会生成不同的错误,因为套接字创建超时。

你可以做以下事情:

  1. 检查您是否可以在浏览器中打开网址
  2. 如果URL正在打开,请检查代码中的域,这可能不正确。
  3. 如果在浏览器中也没有打开,您的网站可能会超载或服务器资源已满,无法执行请求

答案 2 :(得分:0)

503错误的最常见原因是某种形式的代理主机无法与后端通信。例如,如果您有Varnish尝试处理请求但Apache已关闭。

在您的情况下,您在端口8080上运行Django。 (这是8080的含义)。但是,当您尝试从127.0.0.1获取内容时,您将转到默认HTTP端口(80)。这意味着您的默认服务器(Apache可能是?NginX?)正在尝试查找要提供127.0.0.1的主机,但无法找到。

你有两个选择。您可以更新服务器的配置,也可以在URL中包含该端口。

url = 'http://127.0.0.1:8080/full_report/a1uE0000002vu2jIAA/'

答案 3 :(得分:0)

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

import requests

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

requests.get("http://127.0.0.1:8080/myfunction", proxies=proxies)

参考:

  1. https://stackoverflow.com/a/35470245/8011839
  2. https://2.python-requests.org//en/master/user/advanced/#proxies