我正在学习Python的书“使用Python自动化无聊的东西”(由Al Sweigart编写),我遇到了网络抓取问题(第11章),即selenium模块 . 我在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操作系统 .
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