除了response.headers[‘content-type’]里 和正则匹配meta还有没有更直接的办法?meta还有<!---->啥的变态。。。
用python的chardet模块,自动检测编码,不用管网站头中是否有定义编码,我之前自己写了一个自动检测网页编码和文件编码的程序,在这里,安装python的chardet模块,直接运行就可以了。
用 Mozilla 提供的 UniversalChardet
UniversalChardet 和 Chardet 都是Mozilla提供的編碼自動猜測工具,Chardet 已經被 UniversalChardet 淘汰。python的chardet是基於Chardet的,推薦使用 libuchardet
就是页面给出charset,也不一定是真正的charset,例如百度的搜索结果页面。之前演示爬取百度搜索结果页,还出现过根据给出的charset无法转换编码的丑事。。。 Nodejs抓取非utf8字符编码的页面
@byvoid 看起来很强大,谁给编译成node模块把,哈哈哈。
php的mbstring也有类似的功能,可以探测编码。
node里估计根据 utf8 , gbk的特征,检查buffer估计也是可以的,以前php里这么干过
感觉这样会慢的。
现在用的是 iconv-lite 可以,但需要自己探测编码然后再转换
needle集成了iconv-lite,自动帮你完成转码工作,非常棒:https://github.com/tomas/needle