python的requests-html库中使用render()后输出内容乱码的问题

近日在练习使用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:
     
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值