2017-08-25 2 views
0

編集&は、以下のコードを追加: 私の主な問題は、私は、ファイル1 &ユーザーエージェントファイルでプロキシを持っている2 &私は、同時にそれらの両方を変更していますが、今、私はそれらの両方をプロファイルするためにそれらを送る&ランダムに選択変更したいです.set_preference()でも、1つのプロキシをランダムに選択するだけで、毎回同じプロキシを使用します。誰か助けてくださいどのように私はプロキシを分割し、プロファイルにそれらを送信するユーザーエージェントだけでなく、ランダムなプロキシを選択することができますか?ここでランダムなテキストとループをテキストファイルに挿入して、すべてのテキストをランダムに1つずつ取得する方法はありますか?

def change(): 

fi = open("C:\\UsersDesktop\\text_file1.txt","r") 
file1 = random.choice(fi.readlines()) 
print(file1) 

fi2 = open("C:\\Users\\Desktop\\text_file2.txt","r") 
file2 = fi2.read().splitlines() 

for p, a in zip(file, file2): 
     print(p) 
     IP,PORT = urls.strip().split(':') 
     print(file1) 
     try: 
      print("Trying proxy {0}" .format(p)) 
      print("Brwoser Agent {0}" .format(a)) 
      profile = webdriver.FirefoxProfile() 
      profile.set_preference("network.proxy.type", 1) 
      profile.set_preference("network.proxy.http", IP) 
      profile.set_preference("network.proxy.http_port", int(PORT)) 
      profile.set_preference("network.proxy.ssl", IP) 
      profile.set_preference("network.proxy.ssl_port", int(PORT)) 
      profile.set_preference("network.proxy.ftp", IP) 
      profile.set_preference("network.proxy.ftp_port", int(PORT)) 

    profile.set_preference("general.useragent.override",'{0}'.format(a)) 
      profile.update_preferences() 
      driver = webdriver.Firefox(firefox_profile=profile) 
      #driver.set_window_position(-2000, 0) 
      driver.get("https://www.whatismyiaddress.com") 
      print('Program will pause for 1 min 40 sec') 
      time.sleep(100) 
      driver.quit() 

     except: 
      print('This is not working : %s' % p) 
      print("next try in 5 seconds") 
      time.sleep(5) 
      driver.quit() 


print('Nothing left to try') 
+1

コードを投稿する必要があるため、匿名化して投稿することができます。 – quamrana

答えて

0

これまでのところ、私は問題を理解:

import random 
with open('l.txt', 'r') as f: 
    res = f.readlines() 

text_list = list(res) 

for r in range(0, len(text_list)): 
    random.shuffle(text_list) 
    line = text_list.pop() 
    print (len(text_list)) 
    print (line) 
+0

このコードを自分のコードにどうやって入れることができますか? – Rahul

1

私はいくつかの説明を無作為化リストを出力するには例を提供します。

from random import shuffle 

lineList = open("test.txt", "r").readlines() 
shuffle(lineList) 

for line in lineList: 
    print(line) 

まず、ランダムライブラリからシャッフルメソッドをインポートする必要があります。

from random import shuffle 

次に、ファイル全体を読み込んで変数に格納する必要があります。

lineList = open("test.txt", "r").readlines() 

readlines()メソッドを使用します。これは、後で操作するためにlineList変数に格納できるリストを提供するためです。

リストの項目の順序をランダム化するには、プログラムで先にインポートしたshuffleメソッドを使用します。

shuffle(lineList) 

最後に、我々は、forループを使用して私たちのリストの各行を反復処理しようとしています。私たちは、この例では変数を出力しています。

for line in lineList: 
    print(line) 

このプログラムが実行されるたびに、それは異なる無作為化リストを作成することに、注意することが重要です。プログラムを実行するたびにランダム化されたリストがランダムになるようにするには、アプリケーションで使用されるシャッフル乱数ジェネレータのシードを設定する必要があります。シーディングとランダム化がどのように機能するかの詳細については、hereを参照してください。

関連する問題