想将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'))

问题:python3 使用beautifulSoup时,出错UnicodeDecodeError: 'gbk' codec …….的更多相关文章

  1. Python读取文件时出现UnicodeDecodeError 'gbk' codec can't decode byte 0x80 in position x

    Python在读取文件时 with open('article.txt') as f: # 打开新的文本 text_new = f.read() # 读取文本数据出现错误: UnicodeDecode ...

  2. Python读取文件时出现UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position xx: 解决方案

    Python在读取文件时 with open('article.txt') as f: # 打开新的文本 text_new = f.read() # 读取文本数据 出现错误: UnicodeDecod ...

  3. 14 python读取文件时出现UnicodeDecodeError: 'gbk' codec can't decode byte 0xb7 in position 26: illegal multibyte sequence解决方法

    >>> f = open("D:\\all.txt", "r")>>> f.read()Traceback (most re ...

  4. Django 运行Admin 页面时出现 UnicodeDecodeError: 'gbk' codec can't decode byte XXXX解决方法

    具体报错信息 Traceback (most recent call last): File "D:\Anaconda3\lib\site-packages\django\core\hand ...

  5. 逆向使用 execjs时遇到 UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 28: illegal multibyte sequence

    问题: 如下图所示 今天在维护以前的爬虫代码 发现有个网站一直爬取失败,我原以为是网站逆向的部分改了,搞了好久才发现是GBK的问题 接下来告诉大家解决方案 解决方案 如下图 在下图这个subbsubp ...

  6. python读取文件时提示"UnicodeDecodeError: 'gbk' codec can't decode

    解决办法1. FILE_OBJECT= open('order.log','r', encoding='UTF-8') 解决办法2. FILE_OBJECT= open('order.log','rb ...

  7. python3读文件时报错UnicodeDecodeError: 'gbk' codec can't decode byte 0x9f in position 2: illegal multibyte sequence

  8. python 读取文件时报错UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 205: illegal multibyte sequence

    python读取文件时提示"UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 205: illegal m ...

  9. Python中解码decode()与编码encode()与错误处理UnicodeDecodeError: 'gbk' codec can't decode byte 0xab

    编码方法encoding() 描述 encode() 方法以指定的编码格式编码字符串,默认编码为 'utf-8'.将字符串由string类型变成bytes类型. 对应的解码方法:bytes decod ...

随机推荐

  1. idea .gitignore模板

    IDEA 创建的项目,需要搞个.gitignore文件,文件内容可以参考插件的. # Created by .ignore support plugin (hsz.mobi) ### JetBrain ...

  2. 怎样理解window对象的几组位置大小属性

    第一组: window.screenX 和 window.screenY, 只读, 返回浏览器窗口左上角与屏幕左上角的水平距离和垂直距离(单位像素); 第二组: window.innerHeight ...

  3. 使用MD5加密字符串

    一.概念: MD5码以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值. 二 ...

  4. ASP.NET Core 2.1 中的 HttpClientFactory (Part 2) 定义命名化和类型化的客户端

    原文:https://www.stevejgordon.co.uk/httpclientfactory-named-typed-clients-aspnetcore  发表于:2018年1月 上一篇文 ...

  5. 【转载】C#使用as关键字将对象转换为指定类型

    在C#的编程开发过程中,很多时候涉及到数据类型的转换,可使用强制转换的方式,不过强制转换数据类型有时候会抛出程序异常错误,可以使用as关键字来进行类型的转换,如果转换成功将返回转换后的对象,如果转换不 ...

  6. 爬虫request库规则与实例

    Request库的7个主要方法: requests.request(method,url,**kwargs) ​ method:请求方式,对应get/put/post等7种: ​ r = reques ...

  7. Java 之 Junit 单元测试

    Junit 单元测试 测试分类: 1.黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值. 2.白盒测试:需要写代码.关注程序具体的执行流程. Junit 测试:(属于白盒测试) 步骤: 1 ...

  8. 【已解决】老型号电脑需要按F1键才能进入系统

    [已解决]老型号电脑需要按F1键才能进入系统 本文作者:天析 作者邮箱:2200475850@qq.com 发布时间: Tue, 16 Jul 2019 20:49:00 +0800 问题描述:电脑因 ...

  9. 【MySql】牛客SQL刷题(上)

    牛客SQL题目 题目链接:https://www.nowcoder.com/ta/sql 查找最晚入职员工的所有信息 select * from employees where hire_date = ...

  10. kubeadm init初始化报错解决,亲测

    [preflight] You can also perform this action in beforehand using 'kubeadm config images pull' error ...