socket.error: [Errno 54] Connection reset by peer是Selenium-python中的一个错误提示。

3
我是新手,正在尝试一个示例,使用selenium和Python进行网络抓取。示例链接在这里:http://www.marinamele.com/selenium-tutorial-web-scraping-with-selenium-and-python。
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException


def init_driver():
    driver = webdriver.Firefox()
    driver.wait = WebDriverWait(driver, 5)
    return driver


def lookup(driver, query):
    driver.get("http://www.google.com")
    try:
        box = driver.wait.until(EC.presence_of_element_located(
            (By.NAME, "q")))
        button = driver.wait.until(EC.element_to_be_clickable(
            (By.NAME, "btnK")))
        box.send_keys(query)
        button.click()
    except TimeoutException:
        print("Box or Button not found in google.com")


if __name__ == "__main__":
    driver = init_driver()
    lookup(driver, "Selenium")
    time.sleep(5)
    driver.quit()

我已经使用安装了selenium

pip install selenium

但它不起作用。

出现的错误是

socket.error: [Errno 54] Connection reset by peer

有时候

raise BadStatusLine(line)
httplib.BadStatusLine: ''

火狐浏览器打开后立即关闭并显示“Firefox意外退出”。
我已经阅读了Selenium无头浏览器webdriver [Errno 104]连接被对等方重置为什么我在Python中收到此错误?(httplib),但没有帮助。
2个回答

3

有关此事有任何消息吗?我使用的是Selenium 2.53.1和Firefox 47.0,出现了相同的错误。 - Boas Enkler

2

这可能显而易见,但与现有答案相反,我想提醒您尝试升级您的Selenium、Firefox和geckodriver实例。

在记得尝试简单的更新之前,我花了很多时间来解决这个问题,而更新后问题得到了解决。

--

使用以下命令升级Python中的Selenium:

Original Answer translated to "最初的回答"

pip install --upgrade selenium

Check geckodriver version

geckodriver --version

Install latest gecko driver and Firefox


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接