爬虫中遇到的编码问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Totoro1745/article/details/80141753

给大一的小朋友准备了爬虫任务,又准备了一个比较坑的网站,不过终于解决了问题,顺带涨了知识~

爬取过程

爬取数据时发现数据乱码,如图所示
此处输入图片的描述
通过获取文本编码格式,发现text编码格式为iso-8859-1

import requests
w = requests.get("http://58921.com/alltime/2013", timeout=10)
print w.encoding

再返回该网站查看,发现网站header头没有指定编码,如图:
此处输入图片的描述

解决方法

所以针对以上的问题,编码格式的修正方法如下:

# 这样就不乱码
w = requests.get("http://58921.com/alltime/2013", timeout=10)
html = w.content
print html


# 也可以这样做
w = requests.get("http://58921.com/alltime/2013", timeout=10)
w.encoding = 'utf-8'
html = w.text
print html

此处输入图片的描述

小知识

request中输出content和text的区别:

text返回的是Unicode型的数据。
content返回的是bytes型也就是二进制的数据。
也就是说,在使用r.content的时候,已经自带了如下转换

html = bytes(bytearray(html, encoding='utf-8'))

content-type解析

在此链接中有详细说明,可以参考:https://www.cnblogs.com/ajianbeyourself/p/4592798.html

猜你喜欢

转载自blog.csdn.net/Totoro1745/article/details/80141753
今日推荐