python抓取中文网页乱码通用解决方法

我们经常通过python做采集网页数据的时候,会碰到一些乱码问题,今天给大家分享一个解决网页乱码,尤其是中文网页的通用方法。

首页我们需要安装chardet模块,这个可以通过easy_install 或者pip来安装。

安装完以后我们在控制台上导入模块,如果正常就可以。

比如我们遇到的一些ISO-8859-2也是可以通过下面的方法解决的。

直接上代码吧:

import urllib2
import sys
import chardet

req = urllib2.Request("http://www.163.com/")##这里可以换成http://www.baidu.com,http://www.sohu.com
content = urllib2.urlopen(req).read()
typeEncode = sys.getfilesystemencoding()##系统默认编码
infoencode = chardet.detect(content).get(‘encoding‘,‘utf-8‘)##通过第3方模块来自动提取网页的编码
html = content.decode(infoencode,‘ignore‘).encode(typeEncode)##先转换成unicode编码,然后转换系统编码输出
print html

通过上面的代码,相信能够解决你采集乱码的问题。

时间: 2024-12-31 13:32:58

python抓取中文网页乱码通用解决方法的相关文章

Python抓取中文网页出现乱码

转自http://www.oschina.net/code/snippet_1448389_33526 原来是有的时候网站将网页用gzip压缩了 1 """ 2 迪艾姆公司python远程培训班 黄哥所写 3 python远程视频培训班 周末班 4 迪艾姆python培训周末班北京3月8.上海3月9日上课欢迎报名参加. 5 http://www.010dm.com/xflml/3089.html 6 回答贴吧上一个同学用python3访问sina首页中文的处理 7 8 如果只

ubuntu 中用vim打开txt等文件中文显示乱码的解决方法  

今晚用ubuntu 12.04 的vim编辑网页代码时,发现上面的中文显示乱码.这个html文件是我之前用gedit编辑的,在gedit里面显示正常,可是在vim下显示就是乱码了. 怎么解决ubuntu中vim显示中文乱码的问题呢? 首先,添加中文字符编码: sudo gedit /var/lib/locales/supported.d/local 在打开的文件中添加下面的中文字符集 zh_CN.GBK GBK zh_CN.GB2312 GB2312 zh_CN.GB18030 GB18030

ASP.NET中文显示乱码之解决方法

在config.web中设置globalization段 <configuration> <globalization requestEncoding="gb2312" responseEncoding="gb2312" fileEncoding="gb2312"/></configuration> 可以是utf-8.gb2312等等. ASP.NET中文显示乱码之解决方法

php上传文件中文文件名乱码的解决方法

想必很多朋友在进行utf8编码的php开发上传功能的时候,都会遇到这样的一个问题,就是上传中文文件名的文件时,文件名会变成乱码,其实我们可以用iconv函数对文件名进行重新编码就解决问题了 可能会有不少朋友碰到一些问题就是上传文件时如果是英文倒好原文名不会有问题,如果是中文可能就会出现乱码了,今天我来给大家总结一下导致乱码php上传文件中文文件名乱码的原因与解决办法吧. 这几天在windows下安装了XAMPP,准备初步学习一下php的相关内容.这几天接触到了php上传文件,但是出现了一个郁闷问

php 文件中文文件名乱码的解决方法

想必很多朋友在进行utf8编码的php开发上传功能的时候,都会遇到这样的一个问题,就是上传中文文件名的文件时,文件名会变成乱码,其实我们可以用iconv函数对文件名进行重新编码就解决问题了 php文件使用的是UTF-8编码,如果没有猜错APACHE处理用的应该是GBK.想明白了这个问题,就去查找相关的教程了,索性找到了iconv这个函数. 函数原型:string iconv ( string in_charset, string out_charset, string str )使用例子:$co

python(27)requests 爬取网页乱码,解决方法

最近遇到爬取网页乱码的情况,找了好久找到了种解决的办法: html = requests.get(url,headers = head) html.apparent_encoding html.encoding = html.apparent_encoding print html.text 头文件中添加: import sys reload(sys) sys.setdefaultencoding("utf-8")

Python抓取HTML网页并以PDF保存

一.前言 今天介绍将HTML网页抓取下来,然后以PDF保存,废话不多说直接进入教程. 今天的例子以廖雪峰老师的Python教程网站为例:http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000 二.准备工作 PyPDF2的安装使用(用来合并PDF): PyPDF2版本:1.25.1 https://pypi.python.org/pypi/PyPDF2/1.25.1 或 https://g

python(二):用python抓取指定网页

1.抓取网页的内容 urlopen(url)函数:这个函数返回一个 http.client.HTTPResponse 对象, 这个对象又有各种方法 #coding=utf-8import urllib.request url="http://www.baidu.com/"data=urllib.request.urlopen(url)read_data=data.read()info_data=data.info()getcode_data=data.getcode() print(r

网页乱码,解决方法

网页乱码,字符集的问题.博主少说废话了!直接上解决方法! 二种:1.在apache/nginx配置文件中,将charset值 更改为utf8/gb2312 2.在apache/nginx配置文件中,将 Charset值直接注释掉,然后在你的网页动态语言中,加入这一行: <head> <meta http-equiv="content-type" content="text/html:charset=utf8/gb2312"/> </he