当前位置: 首页 > news >正文

Python爬虫解决中文乱码

目录

一、中文乱码

二、chardet.detect()解决

三、在页面查找编码格式解决


一、中文乱码

问题在于文本的编码格式不正确

import requests

url='https://www.shicimingju.com/book/sanguoyanyi.html'
headers={
    'User-Agent':
    'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36 Edg/117.0.2045.47'
}

resp=requests.get(url=url,headers=headers).text
print(resp)

二、chardet.detect()解决

第一步:

在终端输入pip install chardet安装chardet库

pip install chardet

第二步:

import chardet 

第三步:

 chardet库提供了detect函数,用于检测给定文本的编码格式

encoding=chardet.detect(resp.content)["encoding"]

resp.encoding=encoding 

 

import requests
import chardet

url='https://www.shicimingju.com/book/sanguoyanyi.html'
headers={
    'User-Agent':
    'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36 Edg/117.0.2045.47'
}

resp=requests.get(url=url,headers=headers)
#["encoding"]是一个字典索引操作,用于获取chardet.detect()函数返回的字典中的"encoding"键对应的值 该值表示检测到的编码格式
encoding=chardet.detect(resp.content)["encoding"]
#print(encoding)
resp.encoding=encoding

page_text=resp.text
#print(page_text)

三、在页面查找编码格式解决

或者在页面Ctrl+U,再Ctrl+F,输入charset查找文本编码格式

相关文章:

  • css自学框架之选项卡
  • JS中的强制类型转换
  • 在 msys2/mingw 下安装及编译 opencv
  • vue 2 与 vue3 获取模版引用 (ref)的区别
  • STM32之DMA
  • 2310d模板替换运行时
  • C/C++笔试面试真题
  • 理解CSS的层叠性和继承性
  • 力扣第347题 堆(优先队列) 经典题 c++ 简易注释版 附(相关知识点解答)
  • pandas
  • qml使用c++自定义listmodel数据
  • Android学习之路(16) Android 数据库Litepal
  • 利用norm.ppfnorm.interval分别计算正态置信区间[实例]
  • 深度学习(1)---卷积神经网络(CNN)
  • Audacity 使用教程:轻松录制、编辑音频
  • OpenCV实现视频的追踪(meanshift、Camshift)
  • Ubuntu Zookeeper开机自启动服务
  • 快速选择排序
  • Spring的注解开发-注解方式整合MyBatis代码实现
  • 辅助驾驶功能开发-测试篇(2)-真值系统介绍
  • 央视网评论员:婚约不是性许可——山西订婚强奸案背后的性教育盲区
  • 观察|雀巢咖啡加码中国布局,如何借势云南咖啡打造新增长极?
  • 上海推出平台算法治理合规指引:不得“静默推荐”,算法应用向上向善
  • 涉嫌骗取贷款,洪九果品创始人夫妇及多名高管被采取刑事强制措施
  • 一季度工业对宏观经济增长的贡献率达36.3%
  • 俄最高法宣布解除针对阿富汗塔利班的禁令