社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

盘点一个Python网络爬虫过程中中文乱码的问题

码小辫 • 11 月前 • 289 次点击  

码小辫 丝认证

点击关注后,你不仅获得一个找资源的工具,更获得一个有趣的灵魂  ▶  ▶  ▶


一、前言

前几天在Python白银交流群【空翼】问了一个Python网络爬虫中文乱码的问题,提问截图如下:

原始代码如下:

import requests
import parsel

url='https://news.p2peye.com/article-514723-1.html'
headers={
'Accept-Language' 'zh-CN,zh;q=0.9',
'Accept''application/json, text/javascript, */*; q=0.01',
'Accept-Encoding''gzip, deflate, br',
'Cookie''A4gK_987c_saltkey=NEkW4yhb; A4gK_987c_lastvisit=1661338603; TYID=enABI2MGEfsNMDZOu4hwAg==; TJID=enABI2MGEfw+MDzqY2WWAg==; Hm_lvt_556481319fcc744485a7d4122cb86ca7=1661342207; Hm_lpvt_556481319fcc744485a7d4122cb86ca7=1661342851; A4gK_987c_sendmail=1; A4gK_987c_lastact=1661343292%09ajax.php%09advertisement',
'Host''news.p2peye.com',
'Referer''https://news.p2peye.com/article-514723-1.html',
'User-Agent''Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36',
'X-Requested-With''XMLHttpRequest'
}
res=requests.get(url=url, headers=headers)

print(res.status_code)

res.encoding = res.apparent_encoding

# print(res.text)
selector_1 = parsel.Selector(res.text)
title = selector_1.css('#plat-title').get()
print(title)

输出的话,看上去确实有乱码,如下图所示:

二、实现过程

这里【空翼】自己后来稍微调整了下编码,代码如下所示:

res.encoding = 'gbk'

就可以得到预期的效果了

只是有点不太明白,为啥res.encoding=res.apparent_encoding就不好用了,之前都无往不利的。其实这个是让它直接推测编码,肯定没有自己指定的准。

后来【皮皮】也给了一个代码,如下所示:

title.encode('iso-8859-1').decode('gbk')

也是可以得到正常的结果的:

三、总结

这篇文章主要盘点了一个Python网络爬虫过程中中文乱码的问题,文中针对该问题给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。


高质量原创回顾


中国最难入职的IT公司...


马斯克发私信让美女网红给他生娃,被拒以后切断了网红每两周2.1万美元广告收入?


外包同事参加聚餐,刚到包间门口,就听主管说:都自己人,以后有啥脏活累活都给外包,他们本就是服务咱的,不要不好意思


离职交接后,线上出现bug,接口是自己开发的,n+1补偿被追回了


听说互联网不卡35岁了?


程序员为保饭碗,开始“防御性编程”.....


字节这波操作,直接改变了大家的习惯?


华为员工爆料:OD大部分人是入职即巅峰!D4级,除了升D5时月薪涨了3k,其他时候从来没涨过

图片


别忘了点分享、收藏、在看、点赞哦!


图片

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/186449