Python3 + 硒 + PhantomJS UnicodeDecodeError
Python3 + selenium + PhantomJS UnicodeDecodeError
环境
PhantomJS2.1.1;Windows10;selenium-3.8.0;python3
代码
browser = webdriver.PhantomJS() //throw a UnicodeDecodeError
问题
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbd in position
2: invalid start byte
详情
Traceback (most recent call last):
File "d:/devtools/phantomjs-2.1.1-windows/bin/IndustryLeaderSpider.py",
line 20, in
browser = webdriver.PhantomJS('D:/phantomjs.exe')
File "D:\Continuum\Anaconda3\lib\site-packages\selenium\webdriver\phantomjs\webdriver.py",
line 58, in init
desired_capabilities=desired_capabilities)
File "D:\Continuum\Anaconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py",
line 154, in init
self.start_session(desired_capabilities, browser_profile)
File "D:\Continuum\Anaconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py",
line 243, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "D:\Continuum\Anaconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py",
line 309, in execute
response = self.command_executor.execute(driver_command, params)
File "D:\Continuum\Anaconda3\lib\site-packages\selenium\webdriver\remote\remote_connection.py",
line 460, in execute
return self._request(command_info[0], url, body=data)
File "D:\Continuum\Anaconda3\lib\site-packages\selenium\webdriver\remote\remote_connection.py",
line 522, in _request
resp = opener.open(request, timeout=self._timeout)
File "D:\Continuum\Anaconda3\lib\urllib\request.py", line 526, in open
response = self._open(req, data)
File "D:\Continuum\Anaconda3\lib\urllib\request.py", line 544, in _open
'_open', req)
File "D:\Continuum\Anaconda3\lib\urllib\request.py", line 504, in _call_chain
result = func(*args)
File "D:\Continuum\Anaconda3\lib\urllib\request.py", line 806, in
meth(r, proxy, type))
File "D:\Continuum\Anaconda3\lib\urllib\request.py", line 814, in proxy_open
if req.host and proxy_bypass(req.host):
File "D:\Continuum\Anaconda3\lib\urllib\request.py", line 2739, in proxy_bypass
return proxy_bypass_registry(host)
File "D:\Continuum\Anaconda3\lib\urllib\request.py", line 2706, in proxy_bypass_registry
fqdn = socket.getfqdn(rawHost)
File "D:\Continuum\Anaconda3\lib\socket.py", line 673, in getfqdn
hostname, aliases, ipaddrs = gethostbyaddr(name)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbd in position 2: invalid start byte
有人遇到过这个问题吗?如何解决?
您的主要错误似乎是:
File "D:\Continuum\Anaconda3\lib\site-packages\selenium\webdriver\remote\remote_connection.py", line 460, in execute return self._request(command_info[0], url, body=data) File "D:\Continuum\Anaconda3\lib\site-packages\selenium\webdriver\remote\remote_connection.py", line 522, in _request resp = opener.open(request, timeout=self._timeout) File "D:\Continuum\Anaconda3\lib\urllib\request.py", line 526, in open response = self._open(req, data)
请尝试以下步骤:
- 运行
CCleaner
擦除所有OS杂务的工具。
- 拍一张
System Reboot
.
启动时PhantomJS()
提供phantomjs
二进制文件的绝对路径如下:
driver = webdriver.PhantomJS(executable_path=r'C:\path\to\phantomjs.exe')
确保您的脚本中没有不必要的imports
。示例:urllib.request
- 执行你的
Test
.
环境
PhantomJS2.1.1;Windows10;selenium-3.8.0;python3
代码
browser = webdriver.PhantomJS() //throw a UnicodeDecodeError
问题
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbd in position 2: invalid start byte
详情
Traceback (most recent call last): File "d:/devtools/phantomjs-2.1.1-windows/bin/IndustryLeaderSpider.py", line 20, in browser = webdriver.PhantomJS('D:/phantomjs.exe') File "D:\Continuum\Anaconda3\lib\site-packages\selenium\webdriver\phantomjs\webdriver.py", line 58, in init desired_capabilities=desired_capabilities) File "D:\Continuum\Anaconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 154, in init self.start_session(desired_capabilities, browser_profile) File "D:\Continuum\Anaconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 243, in start_session response = self.execute(Command.NEW_SESSION, parameters) File "D:\Continuum\Anaconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 309, in execute response = self.command_executor.execute(driver_command, params) File "D:\Continuum\Anaconda3\lib\site-packages\selenium\webdriver\remote\remote_connection.py", line 460, in execute return self._request(command_info[0], url, body=data) File "D:\Continuum\Anaconda3\lib\site-packages\selenium\webdriver\remote\remote_connection.py", line 522, in _request resp = opener.open(request, timeout=self._timeout) File "D:\Continuum\Anaconda3\lib\urllib\request.py", line 526, in open response = self._open(req, data) File "D:\Continuum\Anaconda3\lib\urllib\request.py", line 544, in _open '_open', req) File "D:\Continuum\Anaconda3\lib\urllib\request.py", line 504, in _call_chain result = func(*args) File "D:\Continuum\Anaconda3\lib\urllib\request.py", line 806, in meth(r, proxy, type)) File "D:\Continuum\Anaconda3\lib\urllib\request.py", line 814, in proxy_open if req.host and proxy_bypass(req.host): File "D:\Continuum\Anaconda3\lib\urllib\request.py", line 2739, in proxy_bypass return proxy_bypass_registry(host) File "D:\Continuum\Anaconda3\lib\urllib\request.py", line 2706, in proxy_bypass_registry fqdn = socket.getfqdn(rawHost) File "D:\Continuum\Anaconda3\lib\socket.py", line 673, in getfqdn hostname, aliases, ipaddrs = gethostbyaddr(name) UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbd in position 2: invalid start byte
有人遇到过这个问题吗?如何解决?
您的主要错误似乎是:
File "D:\Continuum\Anaconda3\lib\site-packages\selenium\webdriver\remote\remote_connection.py", line 460, in execute return self._request(command_info[0], url, body=data) File "D:\Continuum\Anaconda3\lib\site-packages\selenium\webdriver\remote\remote_connection.py", line 522, in _request resp = opener.open(request, timeout=self._timeout) File "D:\Continuum\Anaconda3\lib\urllib\request.py", line 526, in open response = self._open(req, data)
请尝试以下步骤:
- 运行
CCleaner
擦除所有OS杂务的工具。 - 拍一张
System Reboot
. 启动时
PhantomJS()
提供phantomjs
二进制文件的绝对路径如下:driver = webdriver.PhantomJS(executable_path=r'C:\path\to\phantomjs.exe')
确保您的脚本中没有不必要的
imports
。示例:urllib.request
- 执行你的
Test
.