2017-07-15 48 views
0

プロキシのリストを繰り返し使用するプログラムを作成しようとしているので、各プロキシは最初から最後まで繰り返し使用されます。要求に応じてプロキシを使用する方法は次のようなものです。大規模なプロキシリストでのPythonリクエストの使用

proxyDict = { 
       "http" : "http://177.86.8.166:3128", 
       "http" : "http://177.223.187.126:3128" 
      } 

r = requests.get(url, headers=headers, proxies=proxyDict) 

私は以下のような大量のプロキシを持っています。

177.86.8.166:3128 
177.69.237.53:3128 
177.223.187.126:3128 
177.101.172.14:3128 
177.185.114.89:53281 
177.128.192.125:8089 
177.128.210.250:8080 

私は、メモリ内のproxyDict varにすべてのこれらのプロキシを追加するループを使用してについて考えています。私のプログラムを実行するよりも。これが最善の方法ですか?私はまた、プロキシが別のプロキシで正常に動作しない場合にリクエストを繰り返す必要があり、リクエストが成功するまでこれを続ける必要があります。私はこれを行うための最良の方法ですtry catchブロックを使用することを考えていますか?それとも良い方法があるのですか?

答えて

0

私はgrequestsを使用しましたが、私はちょうど同様のことをしました。私は通常しようと、

>>>> r = requests.get(url, headers=headers, proxies=my_proxy, timeout=5) 

各要求がSTATUS_CODEはとても要求が成功したかどうかを確認するためにこれを使用する必要があります:あなたのための思考のカップルが..私はあなたの要求にタイムアウトを追加したいか、あなたのコードがハングします要求が5回失敗したと言った場合

>>> import requests 
>>> r = requests.get('http://notarealsiteatall.org/status/404') 
>>> r.status_code 
404 

は、その後、あなたが次のプロキシに移動することができます。数回は、念のために例えば、タイムアウトがありました。

if tries > 5: 
    my_proxy = new_proxy_server 

私はちょうどリストを作成し、forループを反復処理しました。

関連する問題