首页 文章

Selenium Python webdriver错误

提问于
浏览
0

我在这一行上遇到以下python脚本的问题:

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

我收到此错误:

Traceback(最近一次调用最后一次):文件“C:\ Python27 \ example2.py”,第45行,在driver = webdriver.Firefox(firefox_profile = profile,proxy = proxy)文件“C:\ Python27 \ lib \ site- package \ selenium \ webdriver \ firefox \ webdriver.py“,第135行,在init self.service.start()文件”C:\ Python27 \ lib \ site-packages \ selenium \ webdriver \ common \ service.py“中,行71,在启动os.path.basename(self.path),self.start_error_message)WebDriverException:消息:'geckodriver'可执行文件需要在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()

1 回答

  • 0

    要使用不同的浏览器,您只需下载驱动程序可执行文件,然后将其添加到您的路径中 . 调用浏览器非常简单:

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

    我推荐Chrome,但Selenium支持很多选项

    常见的浏览器驱动程序(complete list):

相关问题