【问题标题】:IOError happened while use requests-html to render a javascript page使用 requests-html 呈现 javascript 页面时发生 IOError
【发布时间】:2018-09-23 09:02:48
【问题描述】:
我正在尝试使用新的库 request-html。
但是当我使用 render() 函数解析一个 javascript 页面时,它总是弹出如下注释:
atexit._run_exitfuncs 中的错误:回溯(最近一次调用最后一次):
文件“C:\程序文件
(x86)\Python36-32\lib\site-packages\pyppeteer\launcher.py",第 201 行,
在 killChrome
self._cleanup_tmp_user_data_dir() 文件“C:\Program Files (x86)\Python36-32\lib\site-packages\pyppeteer\launcher.py”,第 130 行,
在 _cleanup_tmp_user_data_dir
raise IOError('Unable to remove Temporary User Data') OSError: Unable to remove Temporary User Data
我试图解决这些问题,但现在似乎没有解决方案。所以我有点希望这里有人可以帮助我。
PS:似乎我不能用标签发布它:requests-html,我没有足够的声誉。所以,非常抱歉。
【问题讨论】:
标签:
javascript
python
request
render
【解决方案1】:
我遇到了同样的问题,但在我第二次运行后它似乎已经消失了。如果它继续发生,也许在完成后尝试关闭request 和/或session:
session = HTMLSession()
req = session.get(url)
# do something
req.close()
session.close()
【解决方案3】:
修改connection.py文件
pyppeteer/connection.py
@@ -41,7 +41,7 @@ def init(self, url: str, loop: asyncio.AbstractEventLoop,
self.connection: CDPSession
self._connected = False
self._ws = websockets.client.connect(
self._url, max_size=None, loop=self._loop)
self._url, max_size=None, loop=self._loop, ping_interval=None, ping_timeout=None)
self._recv_fut = self._loop.create_task(self._recv_loop())
self._closeCallback: Optional[Callable[[], None]] = None