python 数据中文乱码问题

本文介绍了解决爬虫在抓取中文网页时遇到的乱码问题的方法,通过设置requests的编码方式为utf-8来正确解析中文字符,并提供了unicode转换为中文的示例。

在爬虫时,经常遇到中文乱码,其实在requests获取response时进行转码即可

def crawler():
    baseurl="http://www.weather.com.cn/weather/101010100.shtml"
    r=requests.get(url=baseurl)
    r.encoding="utf-8" 
    # 感觉直接r.text传入就可以处理乱码问题,上面那句可以不填入
    res=r.text
    html=etree.HTML(res)
    #
    data=html.xpath("//li[@class='sky skyid lv4 on'][1]//p[@class='tem']//text()")
    print(data)
crawler()
=================================
['\n', '15', '/', '3℃', '\n']

此时爬取到的数据就是中文的了。

unicode转中文

str = ‘\u5927\u77f3\u8857\u9053\u690d\u6751\u4e09\u8def\u56db\u5df79\u53f7’

使用:str.encode(‘utf-8’).decode(‘unicode_escape’)

str.encode('utf-8').decode('unicode_escape')

抓取的HTML中含有 ↵ 符号处理

先使用 json.dumps() 编码,将↵变成\n,然后把\n替换成空白字符
再使用 json.loads() 解码就可以了

import json
a = "HTML ↵"
print(json.loads(json.dumps(a).replace("\n"," ")).strip())
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值