requests模块的一些总结
Posted tjp40922
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了requests模块的一些总结相关的知识,希望对你有一定的参考价值。
一.cookie模拟登录的三种方式
#!/usr/bin/env python # -*- coding: utf-8 -*- #author tom import requests post_url=‘http://www.renren.com/ajaxLogin/login?1=1&uniqueTimestamp=20192012211‘ post_data={"email":"[email protected]","password":"xxx"} headers={"User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/72.0.3626.109 Safari/537.36"} session=requests.session() #使用session发送post请求,cookie保存在其中 session.post(url=post_url,data=post_data,headers=headers) #在session请求登录之后才能获取的网址 r=session.get("http://www.renren.com/323264874/profile",headers=headers) with open(‘renren.html‘,‘w‘,encoding=‘utf-8‘) as f: f.write(r.content.decode()) # request模拟登陆的三种方式: #方式一: # 先实例化一个session对象,用session先发起一个post请求,session就保存了cookie,再用session发起登录后的请求 #方式二 #浏览器挡登陆后拿到cookie # 在headers中添加cookie的键值对 # 方式三 #在请求方法中添加cookies参数,接收字典形式的cookies # 字典形式的cookie中的键是cookie中name对应的值,值是cookie中value对应的之 #和方式二有点类似,就是拿到cookie,改造成字典,然后在请求时候设置cookies参数
二.requests编码问题
1.response.text
- 类型:str
- 解码方式:根据HTTP头部对应的编码做出有根据的推测,推测文本的编码内容
- 如何修改编码方式:response.encoding="指定的编码方式"
2.response.content
- 类型:bytes
- 解码类型:没有指定
- 如何修改编码方式:response.content.deocode("编码方式")
注意:更建议使用第二种,原汁原味,过早的预处理不是好结果
以上是关于requests模块的一些总结的主要内容,如果未能解决你的问题,请参考以下文章