博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
问题:python3 使用beautifulSoup时,出错UnicodeDecodeError: 'gbk' codec …….
阅读量:5154 次
发布时间:2019-06-13

本文共 850 字,大约阅读时间需要 2 分钟。

想将html文件转为纯文本,用Python3调用beautifulSoup

超简单的代码一直出错,用于打开本地文件:

 
  1. from bs4 import BeautifulSoup
  2. file = open('index.html')
  3. soup = BeautifulSoup(file,'lxml')
  4. print (soup)

出现下面的错误

UnicodeDecodeError : ‘gbk’ codec can’t decode byte 0xff in position 0: illegal multibyte sequence

beautifulSoup不是自称可以解析各种编码格式的吗?为什么还会出现解析的问题???

搜了很多关于beautifulSoup的都没有解决,突然发现,如果把代码写成

 
  1. from bs4 import BeautifulSoup
  2. file = open('index.html')
  3. str1 = file.read() # 错误出在这一行!!!
  4. soup = BeautifulSoup(str1,'lxml')
  5. print (soup)

原来如此! 问题出在文件读取而非BeautifulSoup的解析上!!

好吧,查查为什么文件读取有问题,直接上正解,同样四行代码

 
  1. from bs4 import BeautifulSoup
  2. file = open('index.html','r',encoding='utf-16-le')
  3. soup = BeautifulSoup(file,'lxml')
  4. print (soup)

然后soup.get_text()得到标签中的文字

其它

如果文件中存在多种编码而且报错,可以采用下面这种方式忽略,没测试–

 
  1. soup = BeautifulSoup(content.decode('utf-8','ignore'))

转载于:https://www.cnblogs.com/fly2wind/p/6426319.html

你可能感兴趣的文章
GIT的使用方法
查看>>
php超级全局变量
查看>>
Java字符串与字符、字节数组知识点总结
查看>>
1. Jquery简介
查看>>
最短路 || Codeforces 938D Buy a Ticket
查看>>
MAVEN,SPRING,CXF构建REST风格WebService
查看>>
How to: How to disable Java Security Warning "The application requires an earlier version of Java."
查看>>
svn的安装与配置(转载)
查看>>
uwsgi基础——SNMP
查看>>
八皇后问题
查看>>
java1.8 Stream
查看>>
day①:集合
查看>>
ring0 与 ring3 层之间的交互
查看>>
黑马程序员——Java基础(一)
查看>>
暑假第七周进度总结
查看>>
原码反码补码
查看>>
Java - Stack源码解析
查看>>
Java - 生产者消费者问题
查看>>
Android - Dalvik 和 JVM区别
查看>>
springboot linux启动方式
查看>>