当爬取网页内容为乱码时,解决办法

本文详细介绍了如何在爬虫遇到乱码响应时,使用requests库的r.apparent_encoding属性准确识别并转换编码,确保网页内容正常显示。通过实例演示了https://www.dxsbb.com/news/44368.html的抓取过程。
摘要由CSDN通过智能技术生成
当爬取网页内容为乱码时,解决办法

r.apparent_encoding 从内容中分析响应内容的编码方式

encoding和apparent_encoding的区别

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3MKvM3R0-1606209744999)(en-resource://database/1188:0)]

  • r.encoding:如果header中不存在charset,则认为编码为ISO-8859-1
  • r.apparent_encoding:根据网页内容分析出的编码方式
  • r.apparent_encoding比r.encoding更为准确

如爬取 https://www.dxsbb.com/news/44368.html

import requests

url = 'https://www.dxsbb.com/news/44368.html'
headers = {
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36",
    "cookie": "Hm_lvt_0fde2fa52b98e38f3c994a6100b45558=1605139839,1605441318,1605521212,1606205900; Hm_lpvt_0fde2fa52b98e38f3c994a6100b45558=1606205905; ASPSESSIONIDCGQRRTAQ=PCKBDNECHGHNJPBGINBIINKP"
}
r = requests.get(url, headers=headers)
r.encoding = 'utf-8'
print(r.text)

content = r.content
# print(content)
print(content.decode('ISO-8859-1'))

爬取结果:
在这里插入图片描述

是乱码的

解决办法:

import requests

url = 'https://www.dxsbb.com/news/44368.html'
headers = {
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36",
    "cookie": "Hm_lvt_0fde2fa52b98e38f3c994a6100b45558=1605139839,1605441318,1605521212,1606205900; Hm_lpvt_0fde2fa52b98e38f3c994a6100b45558=1606205905; ASPSESSIONIDCGQRRTAQ=PCKBDNECHGHNJPBGINBIINKP"
}
r = requests.get(url, headers=headers)
r.encoding = r.apparent_encoding
print(r.text)

爬取结果:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值