Python模拟登录requests.Session应用详解


Posted in Python onNovember 17, 2020

最近由于某些原因,需要用到Python模拟登录网站,但是以前对这块并不了解,而且目标网站的登录方法较为复杂, 所以一下卡在这里了,于是我决定从简单的模拟开始,逐渐深入地研究下这块。

注:本文仅为交流学习所用。

登录特点:明文传输,有特殊标志数据

会话对象requests.Session能够跨请求地保持某些参数,比如cookies,即在同一个Session实例发出的所有请求都保持同一个cookies,而requests模块每次会自动处理cookies,这样就很方便地处理登录时的cookies问题。在cookies的处理上会话对象一句话可以顶过好几句urllib模块下的操作。即相当于urllib中的:

cj = http.cookiejar.CookieJar()
pro = urllib.request.HTTPCookieProcessor(cj)
opener = urllib.request.build_opener(pro)
urllib.request.install_opener(opener)

模拟登录V站

本篇文章的任务是利用request.Session模拟登录V2EX(http://www.v2ex.com/)这个网站,即V站。

工具: Python 3.5,BeautifulSoup模块,requests模块,Chrome

这个网站登录的时候抓到的数据如下:

Python模拟登录requests.Session应用详解

其中用户名(u)、密码(p)都是明文传输的,很方便。once的话从分析登录URL:http://www.v2ex.com/signin 的源文件(下图)可以看出,应该是每次登录的特有数据,我们需要提前把它抓出来再放到Form Data里面POST给网站。

Python模拟登录requests.Session应用详解

抓出来还是老方法,用BeautifulSoup神器即可。这里又学到一种抓标签里面元素的方法,比如抓上面的"value",用soup.find('input',{'name':'once'})['value']即可

即抓取含有 name="once"的input标签中的value对应的值。

于是构建postData,然后POST。

怎么显示登录成功呢?这里通过访问http://www.v2ex.com/settings 即可,因为这个网址没有登录是看不了的:

Python模拟登录requests.Session应用详解

经过上面的分析,写出源代码(参考了alexkh的代码):

import requests
from bs4 import BeautifulSoup
 
url = "http://www.v2ex.com/signin"
UA = "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.13 Safari/537.36"
 
header = { "User-Agent" : UA,
      "Referer": "http://www.v2ex.com/signin"
      }
 
v2ex_session = requests.Session()
f = v2ex_session.get(url,headers=header)
 
soup = BeautifulSoup(f.content,"html.parser")
once = soup.find('input',{'name':'once'})['value']
print(once)
 
postData = { 'u': 'whatbeg',
       'p': '*****',
       'once': once,
       'next': '/'
       }
 
v2ex_session.post(url,
         data = postData,
         headers = header)
 
f = v2ex_session.get('http://www.v2ex.com/settings',headers=header)
print(f.content.decode())

然后运行发现成功登录:

Python模拟登录requests.Session应用详解

上面趴下来的网页源代码即为http://www.v2ex.com/settings的代码。这里once为91279.

Python模拟登录requests.Session应用详解

至此,登录成功。

到此这篇关于Python模拟登录requests.Session应用详解的文章就介绍到这了,更多相关Python模拟登录requests.Session内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python数据结构之二叉树的建立实例
Apr 29 Python
Python中使用第三方库xlutils来追加写入Excel文件示例
Apr 05 Python
修改Python的pyxmpp2中的主循环使其提高性能
Apr 24 Python
Python实例一个类背后发生了什么
Feb 09 Python
python使用matplotlib绘制柱状图教程
Feb 08 Python
利用python爬取散文网的文章实例教程
Jun 18 Python
基于Python的PIL库学习详解
May 10 Python
pyqt5实现按钮添加背景图片以及背景图片的切换方法
Jun 13 Python
Python 实现遥感影像波段组合的示例代码
Aug 04 Python
Python3.x+迅雷x 自动下载高分电影的实现方法
Jan 12 Python
Python drop方法删除列之inplace参数实例
Jun 27 Python
python基础学习之生成器与文件系统知识总结
May 25 Python
关于python scrapy中添加cookie踩坑记录
Nov 17 #Python
python中strip(),lstrip(),rstrip()函数的使用讲解
Nov 17 #Python
PyTorch预训练Bert模型的示例
Nov 17 #Python
python 下载文件的多种方法汇总
Nov 17 #Python
python跨文件使用全局变量的实现
Nov 17 #Python
Python中logging日志的四个等级和使用
Nov 17 #Python
Python爬虫破解登陆哔哩哔哩的方法
Nov 17 #Python
You might like
《破坏领主》销量已超100万 未来将继续开发新内容
2020/03/08 其他游戏
PHP遍历某个目录下的所有文件和子文件夹的实现代码
2013/06/28 PHP
php生成excel文件的简单方法
2014/02/08 PHP
Smarty模板变量调节器用法分析
2016/05/23 PHP
URL编码转换,escape() encodeURI() encodeURIComponent()
2006/12/27 Javascript
关于Javascript 的 prototype问题。
2007/01/03 Javascript
js模拟类继承小例子
2010/07/17 Javascript
分享9个最好用的JavaScript开发工具和代码编辑器
2015/03/24 Javascript
TypeScript 学习笔记之基本类型
2015/06/19 Javascript
使用JavaScript制作一个简单的计数器的方法
2015/07/07 Javascript
js实现索引图片切换效果
2015/11/21 Javascript
利用bootstrapValidator验证UEditor
2016/09/14 Javascript
JS 实现导航菜单中的二级下拉菜单的几种方式
2016/10/31 Javascript
node文件批量重命名的方法示例
2017/10/23 Javascript
微信小程序使用modal组件弹出对话框功能示例
2017/11/29 Javascript
Vue隐藏显示、只读实例代码
2018/07/18 Javascript
浅谈Vue.js路由管理器 Vue Router
2018/08/16 Javascript
从vue源码看props的用法
2019/01/09 Javascript
Python实现矩阵加法和乘法的方法分析
2017/12/19 Python
python实现音乐下载器
2018/04/15 Python
python return逻辑判断表达式实现解析
2019/12/02 Python
Python如何将图像音视频等资源文件隐藏在代码中(小技巧)
2020/02/16 Python
Python实现一个论文下载器的过程
2021/01/18 Python
装潢设计专业推荐信模板
2013/11/26 职场文书
酒店值班经理的工作职责范本
2014/02/18 职场文书
2014学校领导四风问题对照检查材料思想汇报
2014/09/22 职场文书
批评与自我批评范文
2014/10/15 职场文书
简易离婚协议书范本2014
2014/10/15 职场文书
2014年初中班主任工作总结
2014/11/08 职场文书
2014年团总支工作总结
2014/11/21 职场文书
入党现实表现材料
2014/12/23 职场文书
小学少先队辅导员述职报告
2015/01/10 职场文书
失恋33天观后感
2015/06/11 职场文书
课改心得体会范文
2016/01/25 职场文书
学习师德师风的心得体会(2篇)
2019/10/08 职场文书
Python 中面向接口编程
2022/05/20 Python