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

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

requests小结

requestse基本使用

关于requests基本使用方法参照中文版参考文档:

http://docs.python-requests.org/zh_CN/latest/index.html

response.text 和response.content的区别

response.text
类型:str
解码类型: 根据HTTP 头部对响应的编码作出有根据的推测,推测的文本编码
如何修改编码方式:response.encoding=”gbk”
response.content
类型:bytes
解码类型:没有指定
如何修改编码方式:response.content.deocde(“utf8”)
更推荐使用response.content.deocde()的方式获取响应的html页面

requests使用代理

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请求登录后的页面
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的几个小技巧(我认为的)

#把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的基本使用

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效果图

相关文章
|
3天前
|
JSON 数据可视化 测试技术
python+requests接口自动化框架的实现
通过以上步骤,我们构建了一个基本的Python+Requests接口自动化测试框架。这个框架具有良好的扩展性,可以根据实际需求进行功能扩展和优化。它不仅能提高测试效率,还能保证接口的稳定性和可靠性,为软件质量提供有力保障。
21 7
|
2月前
|
数据采集 前端开发 算法
Python Requests 的高级使用技巧:应对复杂 HTTP 请求场景
本文介绍了如何使用 Python 的 `requests` 库应对复杂的 HTTP 请求场景,包括 Spider Trap(蜘蛛陷阱)、SESSION 访问限制和请求频率限制。通过代理、CSS 类链接数控制、多账号切换和限流算法等技术手段,提高爬虫的稳定性和效率,增强在反爬虫环境中的生存能力。文中提供了详细的代码示例,帮助读者掌握这些高级用法。
114 1
Python Requests 的高级使用技巧:应对复杂 HTTP 请求场景
|
2月前
|
数据采集 JSON 数据处理
抓取和分析JSON数据:使用Python构建数据处理管道
在大数据时代,电商网站如亚马逊、京东等成为数据采集的重要来源。本文介绍如何使用Python结合代理IP、多线程等技术,高效、隐秘地抓取并处理电商网站的JSON数据。通过爬虫代理服务,模拟真实用户行为,提升抓取效率和稳定性。示例代码展示了如何抓取亚马逊商品信息并进行解析。
抓取和分析JSON数据:使用Python构建数据处理管道
|
2月前
|
网络协议 数据库连接 Python
python知识点100篇系列(17)-替换requests的python库httpx
【10月更文挑战第4天】Requests 是基于 Python 开发的 HTTP 库,使用简单,功能强大。然而,随着 Python 3.6 的发布,出现了 Requests 的替代品 —— httpx。httpx 继承了 Requests 的所有特性,并增加了对异步请求的支持,支持 HTTP/1.1 和 HTTP/2,能够发送同步和异步请求,适用于 WSGI 和 ASGI 应用。安装使用 httpx 需要 Python 3.6 及以上版本,异步请求则需要 Python 3.8 及以上。httpx 提供了 Client 和 AsyncClient,分别用于优化同步和异步请求的性能。
python知识点100篇系列(17)-替换requests的python库httpx
|
1月前
|
数据采集 JSON 测试技术
Python爬虫神器requests库的使用
在现代编程中,网络请求是必不可少的部分。本文详细介绍 Python 的 requests 库,一个功能强大且易用的 HTTP 请求库。内容涵盖安装、基本功能(如发送 GET 和 POST 请求、设置请求头、处理响应)、高级功能(如会话管理和文件上传)以及实际应用场景。通过本文,你将全面掌握 requests 库的使用方法。🚀🌟
109 7
|
1月前
|
JSON 数据格式 索引
Python中序列化/反序列化JSON格式的数据
【11月更文挑战第4天】本文介绍了 Python 中使用 `json` 模块进行序列化和反序列化的操作。序列化是指将 Python 对象(如字典、列表)转换为 JSON 字符串,主要使用 `json.dumps` 方法。示例包括基本的字典和列表序列化,以及自定义类的序列化。反序列化则是将 JSON 字符串转换回 Python 对象,使用 `json.loads` 方法。文中还提供了具体的代码示例,展示了如何处理不同类型的 Python 对象。
|
2月前
|
JSON 数据格式 Python
Python实用记录(十四):python统计某个单词在TXT/JSON文件中出现的次数
这篇文章介绍了一个Python脚本,用于统计TXT或JSON文件中特定单词的出现次数。它包含两个函数,分别处理文本和JSON文件,并通过命令行参数接收文件路径、目标单词和文件格式。文章还提供了代码逻辑的解释和示例用法。
52 0
Python实用记录(十四):python统计某个单词在TXT/JSON文件中出现的次数
|
2月前
|
存储 网络协议 API
详解Python中的Requests会话管理
详解Python中的Requests会话管理
|
2月前
|
JSON 数据格式 Python
Python编程:利用JSON模块编程验证用户
Python编程:利用JSON模块编程验证用户
28 1
|
3月前
|
JSON API 数据格式
30天拿下Python之requests模块
30天拿下Python之requests模块
48 7