2016-11-28 90 views
0

我在與這條線以下python腳本的問題:硒webdriver的Python的錯誤

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.

我已經看過了文檔上,這可能是造成這個問題,但我一直無法找到任何可以解決這個問題的東西。有什麼想法嗎?

此外,有沒有一種方法,我可以使用IE瀏覽器而不是Firefox,如果有的話,我需要什麼代碼切換出什麼?

以下是完整代碼:

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

請確保在PATH中添加geckodriver。並重新啓動IDE。 – Prabhakar

+0

您是否嘗試過運行最簡單的selenium 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 .. 

我會建議瀏覽器,但硒支持很多的選擇

常見的瀏覽器驅動程序(complete list):