版权声明:本文为博主原创文章,未经博主允许不得转载。 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