requests模拟登陆的三种方式
###获取登录后的页面三种方式:
一、实例化seesion,使用seesion发送post请求,在使用他获取登陆后的页面
- import requests
- session = requests.session()
post_url="http://www.renren.com/plogin.do";
post_data={"email":"2290187229@qq.com","password":"yhnujm2490@"}
headers={"User-Agent":"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Mobile Safari/537.36"}
#使用session发送post请求,cookie保存在其中
session.post(post_url,data=post_data,headers=headers)
#在使用session进行请求登陆之后才能访问的地址
r = session.get("http://www.renren.com/970256283",headers=headers)
#保存页面
with open("renren1.html","w",encoding="utf-8") as f :
f.write(r.content.decode())- 详见:04_login_renren.py文件
二、header中添加cookies健,值为cookies字符串
- import requests
- session = requests.session()
post_url="http://www.renren.com/plogin.do";
post_data={"email":"2290187229@qq.com","password":"yhnujm2490@"}
headers={"User-Agent":"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Mobile Safari/537.36"}
#使用session发送post请求,cookie保存在其中
session.post(post_url,data=post_data,headers=headers)
#在使用session进行请求登陆之后才能访问的地址
r = session.get("http://www.renren.com/970256283",headers=headers)
#保存页面
with open("renren1.html","w",encoding="utf-8") as f :
f.write(r.content.decode())
- 详见:05_login_renren.py文件
三、在请求方法中添加cookies参数,接收字典形式的cookie,字典形式的cookie中的键是cookie的name,值是cookie的value
- import requests
- session = requests.session()
headers = {
"User-Agent":"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Mobile Safari/537.36"
}
cookies="anonymid=jtwkj674xq92i8; depovince=GW; _r01_=1; JSESSIONID=abc220tCvwEeEgjJKHsNw; ick_login=def41163-f805-432b-b20e-6db8f8e44ee9; loginfrom=null; jebe_key=e392d3ef-0260-430a-8f19-5f5ffaa3fece%7C38ea40d581b68abb486e592e517d75dc%7C1554015729218%7C1%7C1554015720533; _ga=GA1.2.881890060.1554015731; _gid=GA1.2.552898793.1554015731; _de=C4918E6DB9BF3E4AFE0ED2D7064E52D56DEBB8C2103DE356; t=b3c77548e1525fc74326c8e87360d37a3; societyguester=b3c77548e1525fc74326c8e87360d37a3; id=970256283; xnsid=2d68486a; ver=7.0; wp_fold=0; jebecookies=739c2573-5918-4236-8266-38292006fbec|||||"
cookies={i.split("=")[0]:i.split("=")[0]for i in cookies.split("; ")}
print(cookies)
#在使用session进行请求登陆之后才能访问的地址
r = requests.get("http://www.renren.com/970256283/profile",headers=headers,cookies=cookies)
# #保存页面
with open("renren3.html","w",encoding="utf-8") as f :
f.write(r.content.decode())
详见:06_login_renren.py文件
详见百度网盘:链接:https://pan.baidu.com/s/13tmCu0ftpnPhWw-Mun7kBw 提取码:7idh
requests模拟登陆的三种方式的更多相关文章
- Linux就这个范儿 第15章 七种武器 linux 同步IO: sync、fsync与fdatasync Linux中的内存大页面huge page/large page David Cutler Linux读写内存数据的三种方式
Linux就这个范儿 第15章 七种武器 linux 同步IO: sync.fsync与fdatasync Linux中的内存大页面huge page/large page David Cut ...
- HTML5实现动画三种方式
编者注:作者以一个运动的小车为例子,讲述了三种实现HTML5动画的方式,思路清晰,动画不仅仅是canvas,还有css3和javascript.通过合理的选择,来实现最优的实现. PS:由于显卡.录制 ...
- [转] Bound Service的三种方式(Binder、 Messenger、 AIDL)
首先要明白需要的情景,然后对三种方式进行选择: (一)可以接收Service的信息(获取Service中的方法),但不可以给Service发送信息 (二) 使用Messenger既可以接受Servic ...
- IOS 多线程,线程同步的三种方式
本文主要是讲述 IOS 多线程,线程同步的三种方式,更多IOS技术知识,请登陆疯狂软件教育官网. 一般情况下我们使用线程,在多个线程共同访问同一块资源.为保护线程资源的安全和线程访问的正确性. 在IO ...
- 三种方式上传文件-Java
前言:负责,因为该项目他(jetty嵌入式开始SpringMvc)实现文件上传的必要性,并拥有java文件上传这一块还没有被曝光.并 Http 更多晦涩协议.因此,这种渐进的方式来学习和实践上载文件的 ...
- 记住 Python 变量类型的三种方式
title: 记住变量类型的三种方式 date: 2017-06-11 15:25:03 tags: ['Python'] category: ['Python'] toc: true comment ...
- 使用zabbix监控mysql的三种方式
使用zabbix监控mysql的三种方式 1.只是安装agent 2.启用模板监控 3.启用自定义脚本的模板监控 zabbix中默认有mysql的监控模板.默认已经在zabbix2.2及以上的版本中. ...
- 在Linux安装配置Tomcat 并部署web应用 ( 三种方式 )
系统版本:centos6.5版本 java版本:1.7 一.准备工作 1.java -version 检查是否有java环境,没有则需要去安装并配置到环境变量中. 2.下载tomcat包,下载地址:h ...
- 微软BI 之SSIS 系列 - 数据仓库中实现 Slowly Changing Dimension 缓慢渐变维度的三种方式
开篇介绍 关于 Slowly Changing Dimension 缓慢渐变维度的理论概念请参看 数据仓库系列 - 缓慢渐变维度 (Slowly Changing Dimension) 常见的三种类型 ...
随机推荐
- [Luogu2455] [SDOI2006]线性方程组
题目描述 已知n元线性一次方程组. 其中:n<=50, 系数是[b][color=red]整数<=100(有负数),bi的值都是整数且<300(有负数)(特别感谢U14968 mmq ...
- 冰释前嫌——转入Android Studio与连接手机无法识别问题
前言:曾有段时间被AS+gradle虽紧密结合却依然搞不定联网依赖的模样弄的头疼,尝试了各种改代理.改配置均无果,于是坚守Eclipse进行开发学习,结果一方面受制于gradle Android项目的 ...
- pytest2-收集与执行测试用例规则
pytest收集测试用例规则 测试文件以test_开头(以_test结尾也可以) 测试类以Test开头,并且不能带有 init 方法 测试函数以test_开头(以_test结尾也可以) pytest执 ...
- C#初始类和命名空间
本节内容: 1.剖析Hello,World程序 1.1初始类(class)与名称空间(namespace) 2.类库的引用 2.1DLL的引用(黑盒引用) 2.2项目引用(白盒引用) 2.3建立自己的 ...
- new Date插入mysql数据库时多了一秒
在使用new Date() 插入数据库时,查询出来比实际多了一秒,mysql 表字段设置为datetime类型,当时间精确到秒时,如果毫秒大于500时,会自动进位. 解决方法为格式化后再插入数据库.
- 时针.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- R语言:绘制知识图谱
知识图谱主要是通过将应用数学,图形学,信息可视化技术,信息科学等学科的理论与方法与计量学引文分析.共现分析等方法结合,利用可视化的图谱形象地展示学科的核心结构.发展历史.前沿领域以及整体知识架构达到多 ...
- 你编写的Java代码是咋跑起来的?
如果你是一名 Java 开发人员,你肯定指定 Java 代码有很多种不同的运行方式.比如说可以在开发工具(IDEA.Eclipse等)中运行,可以双击执行 jar 文件运行,也可以在命令行中运行,甚至 ...
- Linux下修改文件权限,所有权
Linux与Unix是多用户操作系统,所以文件的权限与所有权的实现就显得很有必要:每个文件主要与三组权限打交道,分别是用户(user),用户组(group),其他用户(other) 用户(u)是文件的 ...
- Java类、对象、变量、方法
对象:有状态和行为.例如,一条狗是一个对象,它的状态有:颜色.名字.品种:行为有:摇尾巴.叫.吃等 类:类是一个模板,描述一类对象的行为和状态 对象的行为通过方法来体现,状态就是对象的属性,变量可以是 ...