1

可能重复:
给定一个大的 url 列表,有什么方法可以检查哪些是活动的/非活动的?

我最近想到了一个非常简单的实用程序脚本,它可以使用两个参数来测试网站是否在线:开始测试的 url 和详细程度(在不发出警报的情况下可以接受多少丢包)。我想用 Python 2.7.3 编写代码并使其尽可能简单。

这是我的伪代码。

def urlCheck(url, verbosity):
    badcount = 0
    iteration = 0
    while iteration < 10:
                #ping code here
                if website is down:
                       badcount += 1
                iteration += 1
    if badcount > verbosity:
                print "Phooey. It appears your server is down."
    if badcount <= verbosity:
                print "Whew! Your server appears to be running smoothly."

我的问题是,我应该在注释行中放置什么代码?(#ping 代码在这里)

谢谢!

4

1 回答 1

1

如果您坚持使用标准库,urllib2将使用 HEAD 请求完成工作:

import urllib2

class HeadRequest(urllib2.Request):
    def get_method(self):
        return "HEAD"

def url_is_reachable(url):
    response = urllib2.urlopen(HeadRequest(url))
    return response.getcode() == 200

第三方请求库让它变得更好 - 不需要做那个丑陋的方法覆盖:

import requests

def url_is_reachable(url):
    requests.head(url).status_code == requests.codes.ok
于 2012-11-19T19:27:56.233 回答