2017-08-14 7 views
0

私はプロキシを格納するファイルのように使用しようとしています。リクエストモジュールのプロキシにこれらをロードします。Pythonはproxies.txtを要求します。IP:ポート:ユーザ:pass

しかし、今問題は、私のプロキシが混在しています。いくつかのプロキシは認証を持っており、あるものは認証していないものもあります。

だから私のproxies.txtこの

123.12.190.121:2323:user:pass 
123.12.190.122:2323:user:pass 
123.12.190.123:2323 
123.12.190.124:2323:user:pass 
123.12.190.125:2323 

認証でいくつかの、いくつかのdoesn'tのように見えます。

は今、私は私のproxies.txt

は、誰かが私を助けることができるに保存されているロードされたプロキシを使用してこの

response = session.get(URL, proxies=proxies) 

のようなコマンドを呼び出すしたいですか?

答えて

0

リクエストのドキュメントから、ユーザーとの間でプロキシを使用できます。 http://user:[email protected]/構文を使用し、プロキシでHTTP基本認証を使用するには http://docs.python-requests.org/en/master/user/advanced/

::次のリンクをご確認ください

proxies = {'http': 'http://user:[email protected]:3128/'} 

だから、あなたは「でヘルプや正規表現または分割でプロキシの辞書を作成する必要があります。 ' キャラクター。次に、次のようなプロキシURLを作成することができます。http://user:[email protected]:3128 or http://10.10.1.10:3128. 文書から: 特定のスキームとホストのプロキシを指定するには、そのスキーマに// hostname形式を使用します。これは、指定されたスキームと正確なホスト名に対するすべての要求に一致します。プロキシURLにはスキームが含まれている必要があります。

proxies = {'http://10.20.1.128': 'http://10.10.1.10:5323'} 

コードスニペットを確認してください:

import re 
import random 

scheme = 'http://' 
proxies = {} 
with open('proxy.txt', 'r') as f: 
    for line in f: 
     pr = line.strip() 
     m = re.search(r'^(\d+\.\d+\.\d+\.\d+)\:(\d+)\:([^\:]*)\:([^\$]*)$', pr) 
     if m: 
      print('user: ' + m.group(3)) 
      proxies[scheme + m.group(1)] = scheme + m.group(3) + ':' + m.group(4) + '@' + m.group(1) + ':' + m.group(2) 
     else: 
      proxies[scheme + pr] = scheme + pr 

    print(proxies) 

k = random.choice(list(proxies)) 
print(k + ' => ' + proxies[k]) 
+0

感謝を。しかし、プロキシと認証を混在させると、どのように私の.txtからプロキシを読み込むことができますか? – Dking1199

+0

.txtファイルを1行ずつ読み込みます。それがユーザー/パスを持っているかどうかを確認する正規表現を書いてください。それがユーザー/パスを持っている場合は、user:pass @ before ip:portを追加します。それ以外の場合は、ip:portの前に空白を設定します。私はあなたにpsudocodeのサンプルを送っています。 –

+0

ええと、サンプルを送ることができます、私はかなりPythonに新しい、あなたの助けに感謝して、かなり素晴らしいだろう! – Dking1199

関連する問題