2016-11-28 9 views
0

私は、この行の次のPythonスクリプトに問題抱えている:私はこのエラーを取得していますセレンPythonのwebdriverをエラー

driver = webdriver.Firefox(firefox_profile=profile, proxy=proxy). 

Traceback (most recent call last): File "C:\Python27\example2.py", line 45, in driver = webdriver.Firefox(firefox_profile=profile, proxy=proxy) File "C:\Python27\lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 135, in init self.service.start() File "C:\Python27\lib\site-packages\selenium\webdriver\common\service.py", line 71, in start os.path.basename(self.path), self.start_error_message) WebDriverException: Message: 'geckodriver' executable needs to be in PATH.

私が何ができるか上のドキュメントを探していますが問題を引き起こしましたが、私はこの問題を解決するものを見つけることができませんでした。何かご意見は?

また、私はFirefoxの代わりにIEを使用することができますか?もしそうなら、どのコードを私に切り替える必要がありますか?続き

は完全なコードです:

import random, time, requests 
from selenium import webdriver 
from selenium.webdriver.common.proxy import * 
from bs4 import BeautifulSoup 

USER_AGENTS_FILE = './user_agents.txt' 
RUNNING = True 

def LoadUserAgents(uafile=USER_AGENTS_FILE) : 
uas = [] 
with open(uafile, 'rb') as uaf: 
    for ua in uaf.readlines(): 
     if ua: 
      uas.append(ua.strip()[1:-1-1]) 
random.shuffle(uas) 
return uas 

uas = LoadUserAgents() 

while RUNNING == True: 
address = [] 

response = requests.get('https://www.sslproxies.org') 
soup = BeautifulSoup (response.content, "html.parser") 

rows = soup.findAll ("tr") 

for row in rows: 
    if (len(row.findAll("td"))== 8): 
     address.append(row.contents[0].contents[0] + ':' + row.contents[1].contents[0]) 

random.shuffle(address) 

PROXY = random.choice(address) 
proxy = Proxy ({ 
    'proxyType': ProxyType.MANUAL, 
    'httpProxy': PROXY, 
    'ftpProxy': PROXY, 
    'sslProxy': PROXY, 
    'noProxy': '' 
    }) 

profile = webdriver.FirefoxProfile() 
profile.set_preference('general.useragent.override', random.choice(uas)) 
driver = webdriver.Firefox(firefox_profile=profile, proxy=proxy) 
driver.set_page_load_timeout(10) 
try: 
    driver.get("http://www.ipchicken.com/") 
    time.sleep(60) 
    driver.quit() 
except: 
    diver.quit() 
+0

あなたのPATH環境変数にgeckodriver実行可能ファイルのフルパスを追加してみてください。 – Eddie

+0

Peckでgeckodriverが追加されていることを確認してください。 IDEを再起動します。 – Prabhakar

+0

最も簡単なセレンのwebdriverプログラムを実行しようとしましたか?それはうまくいくのですか?私には単純なコードでさえ、あなたのケースではうまくいかないようです。私の返信の指示に従ってください - http://stackoverflow.com/questions/40834238/how-to-properly-setup-windows7-to-use-selenium-with-firefox-tdd-with-python/40837887#40837887 –

答えて

0

別のブラウザを使用するには、ドライバのみの実行可能ファイルをダウンロードして、あなたのパスに追加する必要があります。ブラウザを呼び出すことは非常に簡単です:

from selenium import webdriver 
# ie 
ie_driver = webdriver.Ie() 
# chrome 
chrome_driver = webdriver.Chrome() 
# etc .. 

私はChromeをお勧めしますが、セレンは多くのオプションをサポートしてい

一般的なブラウザドライバー(complete list):

関連する問題