前几天运行pyspider的时候还好好的,今天打开突然报错,错误提示如下:
[E 180222 23:25:33 base_handler:203] HTTP 599: SSL certificate problem: unable to get local issuer certificate
Traceback (most recent call last):
File "c:\users\jonpia\appdata\local\programs\python\python36\lib\site-packages\pyspider\libs\base_handler.py", line 196, in run_task
result = self._run_task(task, response)
File "c:\users\jonpia\appdata\local\programs\python\python36\lib\site-packages\pyspider\libs\base_handler.py", line 175, in _run_task
response.raise_for_status()
File "c:\users\jonpia\appdata\local\programs\python\python36\lib\site-packages\pyspider\libs\response.py", line 172, in raise_for_status
six.reraise(Exception, Exception(self.error), Traceback.from_string(self.traceback).as_traceback())
File "c:\users\jonpia\appdata\local\programs\python\python36\lib\site-packages\six.py", line 692, in reraise
raise value.with_traceback(tb)
File "c:\users\jonpia\appdata\local\programs\python\python36\lib\site-packages\pyspider\fetcher\tornado_fetcher.py", line 378, in http_fetch
response = yield gen.maybe_future(self.http_client.fetch(request))
File "c:\users\jonpia\appdata\local\programs\python\python36\lib\site-packages\tornado\httpclient.py", line 102, in fetch
self._async_client.fetch, request, **kwargs))
File "c:\users\jonpia\appdata\local\programs\python\python36\lib\site-packages\tornado\ioloop.py", line 458, in run_sync
return future_cell[0].result()
File "c:\users\jonpia\appdata\local\programs\python\python36\lib\site-packages\tornado\concurrent.py", line 238, in result
raise_exc_info(self._exc_info)
File "<string>", line 4, in raise_exc_info
Exception: HTTP 599: SSL certificate problem: unable to get local issuer certificate
原因:
请求 https 开头的网址,SSL 验证错误,证书有误。
解决方法:
再次运行后错误提示不再出现,问题解决。在self.crawl()最后加上validate_cert=False参数,如图: