前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python | 关于Requests与Json的使用小结

Python | 关于Requests与Json的使用小结

作者头像
咸鱼学Python
发布2019-10-09 15:10:08
4K0
发布2019-10-09 15:10:08
举报
文章被收录于专栏:咸鱼学Python咸鱼学Python

前言

在学习Scrapy爬虫的过程中,发现需要总结一些东西来避免自己遗忘。这是咸鱼的第19篇原创。

requests小结

requestse基本使用

关于requests基本使用方法参照中文版参考文档: http://docs.python-requests.org/zh_CN/latest/index.html

response.text 和response.content的区别
代码语言:javascript
复制
response.text
类型:str
解码类型: 根据HTTP 头部对响应的编码作出有根据的推测,推测的文本编码
如何修改编码方式:response.encoding=”gbk”

response.content
类型:bytes
解码类型:没有指定
如何修改编码方式:response.content.deocde(“utf8”)

更推荐使用response.content.deocde()的方式获取响应的html页面
requests使用代理
代码语言:javascript
复制
requests.get("http://www.baidu.com", proxies = proxies)
proxies = { 
    "http": "http://12.34.56.79:9527", 
    "https": "https://12.34.56.79:9527", 
    }
代理的基本原理

代理的基本原理

正向代理与反向代理

正向代理:浏览器明确知道要访问的是什么服务器,只不过目前无法达到,需要通过代理来帮助完成这个请求操作。

反向代理:浏览器不知道任何关于要请求的服务器的信息,需要通过Nginx请求。

requests模拟登录的3种方法
  1. 实例化session,使用session发送post/get请求登录后的页面
代码语言:javascript
复制
session = requests.session()
response = session.get(url,headers)
  1. 在headers中添加cookie键,值为cookie字符串
  2. 在请求方法中添加cookie参数,接收字典形式的cookie
cookie和session区别
  1. cookie数据存放在客户的浏览器上,session数据放在服务器上
  2. cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗
  3. session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
  4. 单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie
requests的几个小技巧(我认为的)
代码语言:javascript
复制
#把cookie对象转化为字典
reqeusts.util.dict_from_cookiejar  
#把字典转化为cookie对象
reqeusts.util.cookiejar_from_dict
#url解码
reqeusts.util.unquote() 
#url编码
reqeusts.util.quote()  
#忽略SSL证书验证
response = requests.get("https://www.12306.cn/mormhweb/ ", verify=False)  
#请求https的网站忽略SSL证书验证之后还是会出现警告信息,在请求前加上下面这句就可以禁用安全请求警告
#InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings InsecureRequestWarning)
requests.packages.urllib3.disable_warnings()

json小结

json的基本使用
代码语言:javascript
复制
json.loads() #json字符串转化为python数据类型
json.dumps() #python数据类型转化为json字符串
json.load()  #包含json的类文件对象转化为python数据类型
json.dump()  #python数据类型转化为包含json的类文件对象
什么是类文件对象?

具有read()或者write()方法的对象就是类文件对象,f =open(‘a.txt’,‘r’) f就是类文件对象

如何优雅的查看json?

json文件出现中文乱码:ensure_ascii=False json、字典格式化输出: indent=2 json格式化打印: 使用pprint使用前需要pip install pprint安装

pprint效果图

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 咸鱼学Python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • requests小结
    • requestse基本使用
      • response.text 和response.content的区别
        • requests使用代理
          • 代理的基本原理
            • 正向代理与反向代理
              • requests模拟登录的3种方法
                • cookie和session区别
                  • requests的几个小技巧(我认为的)
                  • json小结
                    • json的基本使用
                      • 什么是类文件对象?
                        • 如何优雅的查看json?
                        相关产品与服务
                        SSL 证书
                        腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档