2017-05-05 3 views
0

urllibモジュールが大好きで、私はPython 2.7で大量のデータを絶えず検索しています。そうですね...urllibでhttpステータスを同時にミラー化して保存する

私がミラーリングしているサービスは、自分のサービスにどれくらいの頻度でヒットする可能性があるかについて非常に難しく、速いルールを持っています。ほとんどの場合、私はヒットしたときに200回の反応ですが、時折、404のために注意を払う必要があります。私は応答コードをこのように確認することができます知っています

...

a=urllib.urlopen('http://www.example.com/mirror_me.txt') 
a.getcode() 
200 

問題は、私は2つを結合する方法がわからないので、今、私はある2つの要求を送信するために抱えています非効率的で、サーバーに対する私のヒット率が倍増します。 理想的には、私は次のようにしたい.....

if 200: 
    mirror 
elif 404: 
    notify me.... 

たぶん、私の答えは、urllibは嘘ではありませんが、私は誰もが持っている任意のポインタを感謝しています。 JW

答えて

0

リクエストは必要な処理を行います。

import requests 
req = requests.get('http://www.example.com/mirror_me.txt') 
if req.status_code == 200: 
    mirror = req.content 
elif req.status_code == 404: 
    print('notify me....') 
+0

質問はurllibでこれを行う方法です。これは答えではありません。 – danny

+1

リクエストタグはなぜ含まれていますか? – misantroop

+0

それに加えて、あなたの答えはurllibではなくurllib2について話しています。 – misantroop

0

urlopenからの応答はread可能なファイルのようなオブジェクトです。

a = urllib.urlopen('http://www.example.com/mirror_me.txt') 
code = a.getcode() 
if code == 200: 
    data = a.read() 
    <..> 

urlib、しかし非推奨per docsurllib2に移動する必要があります。上記のコードはurllib2でも同様に動作します。

関連する問題