2017-05-04 1 views
1

Ich habe versucht, einen neuen zufälligen Proxy für jeden Lauf auf FireFox einzurichten. viele Möglichkeiten Itried, aber nur diese funktioniert, kann aber nicht verstehen, wie es zufällig zu machen:Selenium Webdriver Firefox 52 Python wählen zufälliger Proxy jeden Lauf

profile.set_preference("network.proxy.type", 1) 
      profile.set_preference("network.proxy.http", "Host") 
      profile.set_preference("network.proxy.http_port", port) 
      browser = webdriver.Firefox(profile) 

ich dieses Beispiel ausprobiert, aber nicht funktioniert:

from selenium.webdriver.common.proxy import * 
myProxy = "xx.xx.xx.xx:xxxx" 

proxy = Proxy({ 
    'proxyType': ProxyType.MANUAL, 
'httpProxy': myProxy, 
'ftpProxy': myProxy, 
'sslProxy': myProxy, 
'noProxy': '' # set this value as desired 
}) 
driver = webdriver.Firefox(proxy=proxy) 
driver.get("http://www.google.com") 

Dies ist der beste Weg für mich, weil ich kann verwenden:

myProxy = random.choice(open('data.txt').readlines()) 

ich habe versucht, Proxies aus Textdatei, um diese Arbeit zu bekommen, aber nicht wissen, wie randomisieren:

with open('IPs.txt') as proxylist: 
for line in proxylist: 
    proxyserv, proxyport = line.split(':') 
    proxy= proxyserv , proxyport 

Und lastlly Ich habe versucht:

def random_line(): 
line_num = 0 
selected_line = '' 
with open('IPs.txt') as f: 
    while 1: 
     line = f.readline() 
     if not line: break 
     line_num += 1 
     if random.uniform(0, line_num) < 1: 
      selected_line = line 
return selected_line.strip() 

Diese eine zufällige Zeile bekommen, kann aber nicht herausfinden, wie das Ergebnis zu X = IP Y = PORT zu analysieren und dann:

profile.set_preference("network.proxy.type", 1) 
     profile.set_preference("network.proxy.http", "RANDOM IP") 
     profile.set_preference("network.proxy.http_port", Random PORT) 
     browser = webdriver.Firefox(profile) 
+0

Port muss eine ganze Zahl sein. –

Antwort

1

Port eine ganze Zahl sein muss, können Sie verwenden möchten:

import random 
myProxy = random.choice(open('IPs.txt').readlines()) 
parts = myProxy.strip().split(":") # strip removes spaces and line breaks 
host = parts[0] 
port = int(parts[1]) # port needs to be an integer 
+0

Vielen Dank für Ihre Hilfe. Es klappt. – Doni

Verwandte Themen