近日在练习使用requests-html库来编写爬虫,不得不说这个库确实挺好用,里面的render()功能可以用来运行html文档中的JavaScript,在爬取带有JavaScript的网页时很方便,但在使用时发现一个问题,当网页内容里包含中文,且网页本身的charset不是utf-8,而是gbk等其他字符集的时候,render()后的网页中的中文会显示乱码,网上查阅了一些资料也没能解决这个问题。
话说目前网上关于requests-html库的文章还是比较少,最后还是决定自己啃源码来解决这个问题。以下的代码是源码中HTML类的render()方法的片段:
if self.url == DEFAULT_URL:
reload = False
if send_cookies_session:
cookies = self._convert_cookiesjar_to_render()
for i in range(retries):
if not content:
try:
content, result, page = self.session.loop.run_until_complete(self._async_render(url=self.url, script=script, sleep=sleep, wait=wait, content=self.html, reload=reload, scrolldown=scrolldown, timeout=timeout, keep_page=keep_page, cookies=cookies))
except TypeError: