python爬虫乱码3用urlopen抓取网页文本有乱码,且用decode无法转换

  Bug有时候破坏的你的兴致阻撓了保持到现在的渴望。可是自己又非常明白,它是一种激励是注定要被你踩在脚下的垫脚石!

  python爬虫乱码2.7中最头疼的可能莫过于編码问题了,尤其还是在window环境下有时候总是出现莫名其妙的问题,有时候明明昨天还好好的今天却突然。。遇到这种问题真的是一肚子的火。fuck!

  首先,在我们编写python爬虫乱码代码的时候就要注意一些编码的规范

  4.一般网站基本都是utf-8或者gb2312。可以尝试进行decode然後encode 当前输出环境的编码格式,系统默认的编码格式通过sys.getfilesystemencoding()涉及到文件路径的时候要转换为系统默认的编码。

  5.unicode字符串在写入文件时必须轉换为某种字符编码

  在抓取网页时,我们可以先看看该网页的字符编码这些内容可以在html代码或者f12看network中看到:

  当你得到网页源碼后进行print的时候,那么你就要小心了你可能会得到UnicodeEncodeError!

  还有一种可能就是,你得到的网站内容是被gzip压缩过的这时候我们还需要去解壓缩。大部分的服务器是支持gzip压缩的我更改了一下HttpClient.py。我们默认就去已gzip的方式去访问网站得到压缩过的内容再处理,这样抓取速度就更赽了下面来看一下HttpClient.py的Get方法:

  写了这么多发现没写到点子上,自己经验比较少然而字符编码这种事情是需要经验的。总结起来就是┅句话如果出现了UnicodeEncodeError错误了,就说明字符编码出问题了python爬虫乱码解释器也是一个工具,你需要让他明白所以要decode,然后他为了让你明白所以要encode  为了万无一失推荐使用chardet包!

我要回帖

更多关于 python爬虫乱码 的文章

 

随机推荐