python爬虫request乱码_Python 爬虫使用Requests获取网页文本内容中文乱码

1. 问题

使用Requests去获取网页文本内容时,输出的中文出现乱码。

2. 乱码原因

爬取的网页编码与我们爬取编码方式不一致造成的。如果爬取的网页编码方式为utf8,而我们爬取后程序使用ISO-8859-1编码方式进行编码并输出,这会引起乱码。如果我们爬取后程序改用utf8编码方式,就不会造成乱码。

3. 乱码解决方案

3.1 Content-Type

我们首先确定爬取的网页编码方式,编码方式往往可以从HTTP头(header)的Content-Type得出。

Content-Type,内容类型,一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件,这就是经常看到一些Asp网页点击的结果却是下载到的一个文件或一张图片的原因。如果未指定ContentType,默认为TEXT/HTML。charset决定了网页的编码方式,一般为gb2312、utf-8等

HTML语法格式:station_request = requests.get("http://blog.csdn.net/sunnyyoona")

content_type = station_request.headers['content-type']

print content_type # text/html; charset=utf-8

3.2 chardet

如果上述方式没有编码信息,一般可以采用chardet等第三方网页编码智能识别工具识别:pip install chardet

使用chardet可以很方便的实现文本内容的编码检测。虽然HTML页面有charset标签,但是有些

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值