我正在用“用Python自动化无聊的东西”(由Al Sweigart编写)来学习Python,但是我对Web抓取(第11章)有疑问,即硒模块。我在Python IDLE中编写以下代码:
>>> from selenium import webdriver
>>> browser = webdriver.Firefox() # Here Windows command black window appears
# and Mozilla Firefox with blank page opens
>>> browser.get('http://inventwithpython.com')
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
browser.get('http://inventwithpython.com')
File "C:\Users\forwa\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 326, in get
self.execute(Command.GET, {'url': url})
File "C:\Users\forwa\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 312, in execute
response = self.command_executor.execute(driver_command, params)
File "C:\Users\forwa\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\remote_connection.py", line 472, in execute
return self._request(command_info[0], url, body=data)
File "C:\Users\forwa\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\remote_connection.py", line 495, in _request
self._conn.request(method, parsed_url.path, body, headers)
File "C:\Users\forwa\AppData\Local\Programs\Python\Python36-32\lib\http\client.py", line 1239, in request
self._send_request(method, url, body, headers, encode_chunked)
File "C:\Users\forwa\AppData\Local\Programs\Python\Python36-32\lib\http\client.py", line 1285, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "C:\Users\forwa\AppData\Local\Programs\Python\Python36-32\lib\http\client.py", line 1234, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "C:\Users\forwa\AppData\Local\Programs\Python\Python36-32\lib\http\client.py", line 1065, in _send_output
self.send(chunk)
File "C:\Users\forwa\AppData\Local\Programs\Python\Python36-32\lib\http\client.py", line 986, in send
self.sock.sendall(data)
ConnectionAbortedError: [WinError 10053] An established connection was aborted by the software in your host machine
>>> browser.get('http://inventwithpython.com')
当我第一次写>>> browser.get('http://inventwithpython.com')
时,会发生错误。当我第二次编写此命令时,Mozilla Firefox浏览器将打开所需的网页。当我第三次编写命令时,再次发生ConnectionAbortedError,依此类推-编写命令的奇数时间(1、3,...)导致ConnectionAbortedError,而偶数时间(2、4,.. 。)顺利通过。
我试图关闭防病毒和防火墙,但没有帮助。请帮我解决这个问题。
附言我有Windows 10操作系统。
答案 0 :(得分:1)
我是《用Python自动完成无聊的东西》的作者。我在Windows 10计算机上也遇到此错误。根据这个StackOverflow答案https://stackoverflow.com/a/51005821/1893164,这似乎是geckodriver 0.21.0的问题。
对我有用的解决方法是安装旧版本的geckodriver 0.20.1,您可以在此处下载:https://github.com/mozilla/geckodriver/releases/tag/v0.20.1