【问题标题】:python3 http.client i cant use for not www sitespython3 http.client 我不能用于非 www 网站
【发布时间】:2018-02-23 13:05:31
【问题描述】:

我想检查这个网站是否在线。

import http.client
c = http.client.HTTPConnection("https://support.binance.com/hc/en-us/categories/115000056351")
c.request("HEAD", "/index.html")
print (c.getresponse().status)

代码正在为之工作

c = http.client.HTTPConnection("www.google.com")

【问题讨论】:

  • https://... 是 URL,而不是主机名。您需要改为传递support.binance.com
  • FWIW,你可能对“requests”包感兴趣
  • @AndreaCorbellini support.binance.com 也不起作用。

标签: python urllib http.client


【解决方案1】:

您可以尝试使用requests。如果状态码为 200,则表示站点在线

In [20]: import requests

In [21]: req = requests.get('https://support.binance.com/hc/en-us/categories/115000056351')

In [22]: req
Out[22]: <Response [200]>

【讨论】:

  • 感谢您的回答,它有效,但使用其他方法我可以在 1 分钟内检查 1000 个站点,而在 1 分钟内仅请求 100 个站点。你对此有什么建议吗? @GeorgeDragan
  • 如果您只需要状态码,您可以使用requests.head('https://support.binance.com/hc/en-us/categories/115000056351')。它与您在http.client 中使用的http 方法相同。它将仅返回响应标头而不是整个 HTML。或者你可以看看pycurl我认为比requests更快,如果你使用的是Linux机器,甚至curl
猜你喜欢
  • 2011-05-01
  • 2023-03-24
  • 1970-01-01
  • 2016-10-14
  • 2013-12-23
  • 1970-01-01
  • 2015-06-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多