UnicodeEncodeError: ‘gbk’ codec can’t encode character u’\u200e’ in position 43: illegal multib
【问题】
在执行代码时,提示上述错误,源码如下:
# 下载小说...
def download_stoy(crawl_list,header): # 创建文件流,将各个章节读入内存
with open('E:\盗墓test22.txt', 'w') as f:
for each_url in crawl_list:
# 有的时候访问某个网页会一直得不到响应,程序就会卡到那里,我让他0.6秒后自动超时而抛出异常
while True:
try:
request = urllib.request.Request(url=each_url, headers=header)
with urllib.request.urlopen(request, timeout=0.6) as response:
html = response.read().decode('utf-8')
break
except:
# 对于抓取到的异常,让程序停止1.1秒,再循环重新访问这个链接,访问成功时退出循环
time.sleep(1.1) # 匹配文章标题
title_req = re.compile(r'<h1>(.+?)</h1>')
# 匹配文章内容,内容中有换行,所以使flags=re.S re.S表示跨行匹配
#content_req = re.compile(r'<div class ="content-body">(.+)</div>', re.S)
content_req = re.compile(r'<p>(.*?)</p>', re.S)
#"<div[^>]+>.+?<div>(.+?)</div></div>", re.I
#content_req = re.compile(r'<div[^>]+>.+?<div>(.+?)</div></div>', re.S)
# 获取标题
title = title_req.findall(html)[0]
# 获取内容
content_test = content_req.findall(html)
print('抓取章节>' + title)
f.write(title + '\n')
#print(content_test)
for each in content_test:
# 筛除不需要的的html元素
str1 = each.replace('“', ' ')
str2 = str1.replace('…', ' ')
str3 = str2.replace('”',' ')
f.write(str3 + '\n')
【解决过程】
1. 再次确认其编码格式,确实是utf-8;
2.此问题觉得很诡异的是,本身调用UTF-8去decode,但是解码出错却提示的是GBK的,而不是UTF-8相关解码出错。
3.找了其他帖子,尝试在解码时添加ignore 属性,但没有解决。文中提供的第二种解释,直觉不是这个原因。继续找其他帖子。
4.又找到一个,
http://www.jb51.net/article/64816.htm
根据提示,在文件打开时添加 encoding='utf-8', 即,
with open('E:\盗墓test22.txt', 'w',encoding='utf-8') as f:
问题解决。
【参考】
【总结】Python 2.x中常见字符编码和解码方面的错误及其解决办法
UnicodeEncodeError: ‘gbk’ codec can’t encode character u’\u200e’ in position 43: illegal multib的更多相关文章
- UnicodeEncodeError: ‘gbk’ codec can’t encode character u’\u200e’ in position 43: illegal multibyte sequence
[问题] python中已获取网页: http://blog.csdn.net/hfahe/article/details/5494895 的html源码,其时UTF-8编码的. 提取出其标题部分: ...
- 解决“UnicodeEncodeError: 'gbk' codec can't encode character u'\xa9' in position 24051: illegal multibyte sequence”错误
今天我在爬取一个网页时出现了下面这个错误: UnicodeEncodeError: 'gbk' codec can't encode character u'\xa9' in position 240 ...
- 解决UnicodeEncodeError: 'gbk' codec can't encode character u'\u25aa' in position 344 : illegal multiby
Python拿来做爬虫的确很不错,但是字符串的编码的确是稍不留神就是一个坑,GBK编码和Unicode编码的转化出现问题也是很多的,今天在解析网页数据的时候出现上述错误,解决方案如下: one_str ...
- Python读取中文txt文件错误:UnicodeEncodeError: 'gbk' codec can't encode character
with open(file,'r') as f: line=f.readline() i=1 while line: line=line.decode('utf-8') line=f.readlin ...
- 解决python3 UnicodeEncodeError: 'gbk' codec can't encode character '\xXX' in position XX
从网上抓了一些字节流,想打印出来结果发生了一下错误: UnicodeEncodeError: 'gbk' codec can't encode character '\xbb' in position ...
- UnicodeEncodeError: 'gbk' codec can't encode character '\xa0' in position 1987: illegal multibyte sequence
在爬取 url = "http://stats.meizhou.gov.cn/show/index/1543/1689" 时出现了问题: UnicodeEncodeError: ' ...
- [转]Python UnicodeEncodeError: 'gbk' codec can't encode character 解决方法
使用Python写文件的时候,或者将网络数据流写入到本地文件的时候,大部分情况下会遇到:UnicodeEncodeError: 'gbk' codec can't encode character ' ...
- UnicodeEncodeError: 'gbk' codec can't encode character '\xbb' in position 30633: illegal multibyte sequence
import urllib.request def load_baidu(): url = "https://www.baidu.com/" header = {"Use ...
- [python]UnicodeEncodeError: 'gbk' codec can't encode character '\ufffd'
有关编码问题,一直以来都是十分头疼的问题.代码中的字符编码其实还好,但是由于使用的window系统,会用Window的默认编码去解析文本. 今天用脚本在写文件的时候,就总是弹出UnicodeEncod ...
随机推荐
- orcale存储过程学习之路(一)
----------------------------------------- 建表 ------------------------------------------ create table ...
- R语言:变量名称和字符串的转换
R语言:变量名称和字符串的转换 2014-06-23 14:45:27 在R语言中,经常会遇到变量名称和字符串相互转换的问题.比如说,进行1000次循环运算,并将运算结果存储在1000 ...
- ASP.NET 中整合JavaScript的技巧
尽管ASP.NET提供了一个强壮的平台,但是开发者也不应忽视诸如JavaScript这样成熟的技术.在这篇文章中,Tony Patton将向您解释在Web开发中如何将JavaScript与ASP.NE ...
- QSocket类
QSocket类提供了一个有缓冲的TCP连接. 详情请见…… #include <qsocket.h> 继承了QObject和QIODevice. 所有成员函数的列表. 公有成员 enum ...
- arduino入门套件学习过程-安装配置
arduino作为非常火的开源软硬件,有其巨大的优势和前景. 我呢,近期正好需要用arduino做一些小东西,借此机会,分享我的arduino学习历程,欢迎各位朋友一起讨论,指点! 现在进入正题: 这 ...
- 「下载神器」aria2 懒人安装教程 [Windows]
是一款开源.轻量级的多协议命令行下载工具,支持 HTTP/HTTPS.FTP.SFTP.BitTorrent 和 Metalink 协议,拥有众多第三方支持插件,被誉为「下一代下载工具」和「下载神器」 ...
- Redis工业生产应用场景
Redis应用场景 国内外三个不同领域巨头分享的Redis实战经验及使用场景 Redis的5个常见使用场景 Redis应用场景 Redis应用场景<张善友>
- NR 数据库简介
目前有很多的数据库都存储了蛋白序列,比如NCBI Refseq, protein, swissprot 等,在各个数据库之间,或者是在某个数据库中,蛋白序列有大量冗余:为了方便使用,ncbi 构建了n ...
- ORACLE 几个我忍了他很多年的问题
① DataGuard环境,主库创建的临时文件,不在备库上创建 ② 创建11G R2 Rac环境时,在RHEL 6.0及以后版本上,最后执行root.sh命令时,以及重新启动OS后启动ohasd,都需 ...
- C#页面前台<%%><%#%><%=%>
ASP.net前台绑定用的最多,今天小小总结一下. 1:<%#Eval("")%> 2:<%#Bind("")%> 3:<%=变量 ...