1

重複の可能性:
URLの大きなリストがある場合、どのURLがアクティブ/非アクティブであるかを確認する方法は何ですか?

私は最近、Webサイトをテストして、URLのテスト開始と冗長性(アラートを発生させずに受け入れることができるパケット損失の量)の2つのパラメーターを使用しているかどうかを確認する非常に単純なユーティリティスクリプトのアイデアを思いつきました。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 に答える