从这个网站http://engine.data.cnzz.com/main.php?s=engine&uv=&st=2014-03-01&et=2014-03-31
<tr class="list03" onclick="showMen1(9);" style="cursor:pointer;">
<td id="e_9" class="qh_one">百度汇总</td>
我正在抓取文本并尝试获取百度汇总
但当我r.encoding = 'utf-8'
时,结果是�ٶȻ���
如果我不使用utf-8
,结果是°Ù¶È»ã×Ü
Tags:
服务器不会在响应头中告诉您任何有用的信息,但HTML页面本身包含:
GB2312是一种可变宽度编码,与UTF-8类似。然而,该页是假的;实际上它使用了GBK,它是GB2312的扩展。在
你可以很好地用GBK解码:
^{pr2}$使用
gb2313
解码失败:但由于GBK是GB2313的超集,因此即使指定了后者,也应该始终安全地使用前者。在
如果您正在使用
requests
,那么将r.encoding
设置为gb2312
起作用,因为r.text
在处理解码错误时使用replace
:因此,当使用GB2312时,对于那些只在GBK中定义的码位,解码错误被掩盖了。在
注意,beauthulsoup可以自己完成解码;它将找到
meta
头:此警告是由于页面声明使用GB2312时使用的GBK代码点引起的。在
相关问题 更多 >
编程相关推荐