您的位置: 网站首页> requests爬虫> 当前文章
requests响应r.text(文本数据)与r.json()(json数据)
老董-我爱我家房产SEO2020-09-27169围观,148赞
前面的文章一直介绍请求没有说过响应,如果只请求无响应就像只拨电话无人接电话一样毫无意义!requests模块在内容处理方面做的也很周到,有文本响应、二进制响应、原始响应、json响应,基本可以满足很多场景。本文了解下文本响应和json数据响应。
1、文本响应r.text
1个请求发出后,Requests会基于HTTP头部对响应的编码作出有根据的推测。访问r.text时,Requests会推测其文本编码自动解码来自服务器的内容,大多数unicode字符集都能被无缝地解码。
# -*- coding: utf-8 -*- headers = { 'user-agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 Edg/95.0.1020.44', } r = requests.get('https://www.baidu.com/',headers=headers) print(r.text)
省略...
如果运气不好,requests识别编码发生错误,可以手动使用r.encoding属性来通知requests按什么方式解码。
# -*- coding: utf-8 -*- headers = { 'user-agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 Edg/95.0.1020.44', } r = requests.get('https://www.360.com/',headers=headers) r.encoding='utf-8' print(r.text)
省略...
如果创建了自己的编码,并使用codecs模块进行注册,也可以使用这个解码器名称作为r.encoding的值,然后由Requests来处理编码。
2、json响应 r.json()
如果网页返回的是json数据,可以用Requests的JSON解码器r.json()来处理JSON数据,直接转为字典!我们用百度下拉词的接口来测试下。有些网页源码不规范会导致JSON解码失败,此时r.json()就会抛出一个异常。
# -*- coding: utf-8 -*- headers = { 'user-agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 Edg/95.0.1020.44', } r = requests.get('https://www.baidu.com/sugrec?ie=utf-8&prod=pc&wd=python',headers=headers) print(r.json())
{'q': 'python', 'p': False, 'g': [{'type': 'sug', 'sa': 's_1', 'q': 'python是什么意思'}, {'type': 'sug' , 'sa': 's_2', 'q': 'python培训班学费一般多少'}, {'type': 'sug', 'sa': 's_3', 'q': 'python入门教程(非常 详细)'}, {'type': 'sug', 'sa': 's_4', 'q': 'python怎么读'}, {'type': 'sug', 'sa': 's_5', 'q': 'python能 做什么'}, {'type': 'sug', 'sa': 's_6', 'q': 'python中/与//的区别'}, {'type': 'sug', 'sa': 's_7', 'q': ' python编程基础'}, {'type': 'sug', 'sa': 's_8', 'q': 'python的两种编程方式'}, {'type': 'sug', 'sa': 's_9 ', 'q': 'python数据分析'}, {'type': 'sug', 'sa': 's_10', 'q': 'python语言属于什么语言'}], 'slid': '1056 5785855094654546', 'queryid': '0x291364159c38652'}
很赞哦!
python编程网提示:转载请注明来源www.python66.com。
有宝贵意见可添加站长微信(底部),获取技术资料请到公众号(底部)。同行交流请加群
相关文章
文章评论
-
requests响应r.text(文本数据)与r.json()(json数据)文章写得不错,值得赞赏