python 处理抓取网页乱码问题一招鲜
FROM: http://my.oschina.net/012345678/blog/122355
相信用python的人一定在抓取网页时,被编码问题弄晕过一阵
前几天写了一个测试网页的小脚本,并查找是否包含指定的信息。
在html = urllib2.open(url).read() 时,打印到控制台始终出现乱码。
一般的解决办法就是html.decode('utf-8').encode('gb2312'),不过这个即使用了,也没能解决我的问题
这里有两个问题,第一个你要知道网页的编码格式是utf-8 第二你得确定你的系统是gb2312的,能不能主动获取网页的编码格式,并主动获取系统编码格式,像这样
网页编码 = 获取网页编码
系统编码 = 获取系统编码
html.decode(网页编码).encode(系统编码) 即使我不知道网页编码,系统编码,只要双方能转 ,就行。
网页编码 = re.complier('正则获取meta里的编码格式')
系统编码 = sys.getfilesystemencoding() ########关键的关键
html.decode(网页编码).encode(系统编码) 现在打印,一切正常了。我才不管系统什么编码,只要你能转。
python 处理抓取网页乱码问题一招鲜的更多相关文章
- python 处理抓取网页乱码
python 处理抓取网页乱码问题一招鲜 相信用python的人一定在抓取网页时,被编码问题弄晕过一阵 前几天写了一个测试网页的小脚本,并查找是否包含指定的信息. 在html = urllib2. ...
- python 解决抓取网页中的中文显示乱码问题
关于爬虫乱码有很多各式各样的问题,这里不仅是中文乱码,编码转换.还包括一些如日文.韩文 .俄文.藏文之类的乱码处理,因为解决方式是一致的,故在此统一说明. 网络爬虫出现乱码的原因 源网页编码和爬取下来 ...
- python分布式抓取网页
呵呵,前两节好像和python没多大关系..这节完全是贴代码, 这是我第一次写python,很多地方比较乱,主要就看看逻辑流程吧. 对于编码格式确实搞得我头大..取下来页面不知道是什么编码,所以先找c ...
- Python 抓取网页乱码问题 以及EXCEL乱码
import codecs f1=codecs.open('items.json', 'r', encoding='utf-8').read().decode("unicode_escape ...
- python多线程抓取网页信息
#!/usr/env python #-*- coding: utf-8 -*- import urllib import urllib2 import random import requ ...
- file_get_contents 抓取网页乱码。
iconv string iconv ( string $in_charset , string $out_charset , string $str ) mb_convert_encoding st ...
- python 简单抓取网页并写入excel实例
# -*- coding: UTF-8 -*- import requests from bs4 import BeautifulSoup import xlwt import time #获取第一页 ...
- (转)用python实现抓取网页、模拟登陆
涉及一系列内容,部分已在前面转载,仍转自crifan: http://www.crifan.com/how_to_use_some_language_python_csharp_to_implemen ...
- Python之抓取网页元素
import urllib.request from bs4 import BeautifulSoup url = "http://www.wal-martchina.com/walmart ...
随机推荐
- Codeforces Round #328 (Div. 2) C 数学
C. The Big Race time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...
- mac 安装 nodeJs&npm 配置
前言:继续安装 nodeJS 下载安装:直接去官网,点击安装即可. 命令式安装: 1. 安装 homebrew 2. 安装 nodeJS,使用命令:brew install node 3. 测试 no ...
- jquery 的ajax
一,$.get(url,[data],[callback]) 说明:url为请求地址,data为请求数据的列表(是可选的,也可以将要传的参数写在url里面),callback为请求成功后的回调函数,该 ...
- tips 前端 移动端 web iscroll 5 自译文档 api速查
iscroll 可以做的 1,模拟原生的ios 或者android等设备的元素滚动,app里的那种顺滑的滚动,仅仅使用一个轻量的js库实现(甚至更酷炫的视觉感受) 2,手机端流行的下拉刷新,ajax异 ...
- redis加入到Windows系统服务
1.cmd命令,到redis的安装目录输入以下命令 安装命令: redis-server.exe --service-install redis.windows.conf --loglevel ve ...
- visio画任意形状图形
1,连接线--右击---曲线连接线 2,选中组合 3,开发工具--操作--连接--填充
- MVC5的坑
事情是这样的,今天在写一个功能模块的时候,创建的方法,到controller里,死活为null 以前从没出现这种情况啊,但是区别是这个代码是多层跳转进来的,难道是页面跳转太多,还记得之前的model, ...
- Python的功能模块[3] -> binascii -> 编码转换
binascii模块 / binascii Module binascii模块包含很多在二进制和 ASCII 编码的二进制表示之间的转换方法.关于进制转换可以参考一些内置函数. hexlify 与 u ...
- android如何取消闹铃
取消闹钟: Intent intent = new Intent(context, TestReceiver.class); PendingIntent pi = PendingIntent.getB ...
- 内连接(INNER JOIN)
内连接组合两张表,并且基于两张表中的关联关系来连接它们.使用内连接需要指定表中哪些字段组成关联关系,并且需要指定基于什么条件进行连接.内连接的语法如下: INNER JOIN table_name O ...