首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用提取html页面时出现的“‘charmap”编解码错误

使用提取html页面时出现的“‘charmap”编解码错误
EN

Stack Overflow用户
提问于 2017-05-15 03:42:51
回答 3查看 1.7K关注 0票数 1

当我试图使用下面的代码加载任何页面时,它只是抓取标记<"head">而不是整个html等等。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import requests
from bs4 import BeautifulSoup

page = requests.get('http://www.tushmedia.com/')
soup = BeautifulSoup(page.content, 'lxml-xml')
print(soup.prettify())

但是,如果我删除'xml‘并离开soup = BeautifulSoup(page.content, 'lxml'),它将生成一个错误:

“‘charmap”编解码器无法在位置11051中编码u'\u2019’:字符映射到

这是因为当我删除" xml“部分时,它将不会获取xml,也不会生成输出,并且当它试图获取HTML时会生成此错误。我认为这是关于一个UTF-8编码问题,但有什么办法解决这个问题吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-05-15 03:51:54

尝试将其编码为utf-8

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import requests
from bs4 import BeautifulSoup

page = requests.get('http://www.tushmedia.com/')
soup = BeautifulSoup(page.content, 'lxml')
print(soup.prettify().encode('utf-8'))
票数 3
EN

Stack Overflow用户

发布于 2017-05-15 04:22:31

这是相反的直觉,但是

  • "lxml"是一种HTML解析器,而
  • "lxml-xml"是一个XML解析器

u'\u2019'是正确的引号字符(花式,卷曲),它在ASCII表中没有表示。

BeautifulSoup使用一个名为Unicode, Dammit的子库来检测文档的编码并将其转换为Unicode。自动检测到的编码可以作为.original_encoding对象的BeautifulSoup属性使用.

大多数情况下,UnicodeDammit猜测都是正确的,但有时也会出错。有时,它会正确地猜测,但只在对需要很长时间的文档进行逐字节搜索之后才进行猜测。

因此,可以将from_encoding=参数添加到构造函数中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
soup = BeautifulSoup(page.content, 'lxml-xml', from_encoding='utf-8')
票数 1
EN

Stack Overflow用户

发布于 2017-05-15 03:51:50

如果需要获取整个html,则需要使用html.parser

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from bs4 import BeautifulSoup
import requests

url = 'http://www.tushmedia.com/'
page = requests.get(url)
soup = BeautifulSoup(page.content, 'html.parser')

print(soup.prettify)

我用lxml-xmlxml运行了您的代码,它只返回了

照你说的去吧。没有任何错误。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43978612

复制
相关文章
[日常] 腾讯云发送邮件失败问题
1. 在腾讯云上的程序发送邮件失败 , 是因为腾讯云封禁了25端口 2.使用telnet测试连接第三方smtp服务的25端口 , 均失败 3.进入腾讯云控制台 , 申请解封25端口 4.解封完成后 ,
唯一Chat
2019/09/10
7.8K0
[日常] 腾讯云发送邮件失败问题
java发送邮件功能,以发送qq邮件为例
问题①: java发送qq邮件出现如下错误的解决方法:      503 Error: need EHLO and AUTH first ! pop.put("mail.smtp.auth", "true");//注意value值不能不设置,并且不能是Boolean类型,应为字符串,否则会报如上所示错误 问题②: Could not connect to SMTP host: smtp.qq.com, port: 465, response: -1 原因:     465端口是为SMTPS(SMTP-ove
用户1215919
2018/02/27
2K0
常见邮件发送失败原因分析以及解决方法是_手机邮箱发送失败
我发到 sina 的邮件会被退回,并提示remote server said: 553 Spam Mail http://mail.sina.com.cn/FAQ.html;错误,怎么办?
全栈程序员站长
2022/11/10
5.1K0
常见邮件发送失败原因分析以及解决方法是_手机邮箱发送失败
为 Confluence 6 配置发送邮件消息
 > 基本配置(General Configuration) > 邮件服务器(Mail Servers)。这里列出了所有当前配置的 SMTP 服务器。
HoneyMoose
2019/01/30
1.7K0
SpringBoot整合异步任务实现发送邮件
“异步”(Asynchronous)与“同步”(Synchronous)相对,异步不用阻塞当前线程来等待处理完成,而是允许后续操作,直至其它线程将处理完成,并回调通知此线程。也就是说,异步永远是非阻塞的(non-blocking)。
宁在春
2022/10/31
8940
SpringBoot整合异步任务实现发送邮件
laravel 定时任务通过队列发送邮件[通俗易懂]
关于laravel发送邮件,请先参考我的另一片文章:laravel sendcloud发送邮件,再继续往下看。
全栈程序员站长
2022/07/12
1.3K0
java发送邮件 发送带附件的邮件
import java.io.File; import java.util.Date; import javax.activation.DataHandler; import javax.activation.FileDataSource; import javax.mail.Address; import javax.mail.BodyPart; import javax.mail.Message; import javax.mail.Multipart; import javax.mail.Sessio
用户7999227
2021/09/19
2.2K0
[Python] Python发送邮件(文本邮件发送)
直接上代码吧 然后采用者直接写好自己的信息就可以运行啦 import smtplib from email.mime.text import MIMEText from email.header import Header mail_host = "smtp.qq.com" #邮箱服务器(这里采用的是QQ的) mail_user = "******@qq.com" #发送者的邮箱地址 mail_pass
Michael阿明
2021/02/19
2.4K0
java 发送邮件添加附件_java发送邮件 发送带附件的邮件详解[通俗易懂]
import javax.mail.internet.InternetAddress;
全栈程序员站长
2022/08/28
2.4K0
python smtplib在linux上发送邮件失败解决方式
之后放在linux上却 /usr/local/python3/lib/python3.7/socket.py
陈灬大灬海
2020/07/03
2K0
[PHP] 邮件发送mail()函数失败问题 sendmail命令与postfix
1. php的mail()函数是可以发送邮件的 , 但是一直就没有测试成功过 , 现在总结一下原因 :
唯一Chat
2019/09/10
1.4K0
[PHP] 邮件发送mail()函数失败问题 sendmail命令与postfix
发送邮件
1.我们通过Python的SMTP对象发送邮件,需要填写邮箱服务器,邮箱账号密码,邮件主题及邮件内容。
清菡
2020/12/02
1.9K0
发送邮件
SpringBoot发送邮件+使用html模板发送邮件
这两天在公司做商城系统有一个业务用到了发送邮件功能 springboot 有spring-boot-starter-mail
@依然范特西
2022/12/12
3K0
Jenkins 设置构建失败发送邮件(学习笔记二十一)
本文是jenkins应用系统文章的一部分,大部分来自工作和学习中的实践,部分内容来自官方文档和网友的文章,引用的文章会在“参考资料”部分附上原始链接,如无意中侵犯您的权利,请联系QQ:46106962,如需要进一步的交流请加入QQ群: (Jenkins学习交流)469536515。转载和使用请注明出处。
用户5760343
2022/05/24
1.7K0
Jenkins 设置构建失败发送邮件(学习笔记二十一)
Jenkins 踩坑(三)| Email 配置与任务邮件发送
这是因为使用 QQ 邮箱登录,需要填入的是 QQ 邮箱的授权码,这是用于登录第三方客户端的专用密码。具体的获取方式可参考:
霍格沃兹测试开发
2022/04/28
4120
jenkins 邮件_邮件发送服务
前面已经实现在jenkins上展示html的测试报告,接下来只差最后一步,把报告发给你的领导,展示你的劳动成果了。
全栈程序员站长
2022/09/19
3.1K0
jenkins 邮件_邮件发送服务
轻松发送HTML格式邮件:Spring Boot邮件发送
🏆本文收录于 《Spring Boot从入门到精通》 ,专门攻坚指数提升,2023 年国内最系统+最强(更新中)。
bug菌
2023/10/09
1.3K0
轻松发送HTML格式邮件:Spring Boot邮件发送
Linux下使用Shell为SendGrid Email API 发送邮件
将代码存为shell文件,将上一个文件的echo输出改成执行此文件即可自动推送到邮箱。
子润先生
2021/06/14
1.1K0
python发送邮件
要先在对应的邮箱服务器中开通stmp服务,然后再说上述代码中配置成相应的内容,就可以发送邮件了
会呼吸的Coder
2020/02/17
8780
linux发送邮件命令_java实现邮件发送功能
刚开始我的系统就没有mail服务,使用“yum -y install mailx”安装时有一只报错, 提示“ Error: Failed to download metadata for repo ‘appstream’: Cannot prepare internal mirrorlist: No URLs in mirrorlist” 意思是“错误:未能下载repo“appstream”的元数据:无法准备内部镜像列表:镜像列表中没有URL” 后来查看博客找到了原因。CentOS团队从官方镜像中移除CentOS 8的所有包 需要执行以下两行代码
全栈程序员站长
2022/11/01
3.5K0
linux发送邮件命令_java实现邮件发送功能

相似问题

可靠地发送有关芹菜任务成功/失败的邮件

12

SSIS发送邮件任务失败

20

SMTP发送邮件任务失败

11

django用芹菜任务发送电子邮件

14

如何配置芹菜,以便在任务失败时发送电子邮件通知?

24
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文