本文将详细讲解Python通过抓取包来模拟登录各种网站的原理分析。本文内容质量较高,边肖分享供参考。希望你看完这篇文章后有所了解。
一、教程介绍
1.1基本介绍(Python学习资料可以通过私信编辑器001、002、003、007中的任意一个获取)
通过对登录过程的分析,利用Python实现对实验提供的某个网站的模拟登录,在实验过程中,我们将学习和练习Python的网络编程、Python的模拟登录方法,以及Firefox的数据包捕获和分析插件分析网络数据包等知识。
登录模拟可以帮助用户自动完成很多操作,在不同的场合有不同的用途。无论是自动化一些日常繁琐的操作,还是在爬虫中使用,都是一项非常实用的技能。本课程由Firefox和Python实现,环境要求如下:
Python库:urllib,http.cookiejar,Django
Firefox要求:安装实时http头插件(已提供)
1.3材料
1.4准备
1)安装包抓取插件Live Http Headers。
2)启动网络应用程序
使用ps -aux | grep codebox查询获取codebox的进程号,然后使用kill -9进程号停止codebox进程。实施过程见下图:
首先,安装django,即demo所依赖的web框架,并测试安装是否成功:
成功启动后,在浏览器中输入http://localhost:8000/polls即可看到登录页面,表示启动成功。
其次,分析登录过程
通过编程实现登录,首先需要了解一般Web应用的登录流程。
2.1抓取请求
2.2原理分析
img src="https://cache.yisu.com/upload/information/20200703/144/40408.jpg" alt="通过抓包实现Python模拟登陆各网站的原理分析是怎样的">
为什么是2个请求而不是1个呢?通过分析登录请求发现,登陆成功之后服务器发送了302重定向响应,服务器要求浏览器重新请求首页,这就产生了第二个请求。再来分析第二个请求,可以看到它相比登录请求多了一个请求头:
整个登录流程如下图所示:
服务器到底是如何区别不同用户的session的?为什么登陆成功会后要回写cookie呢?
2.3小结
对于服务器来说,登录=验证+写session。对于浏览器来说,登录=发送登录信息+获取带sessionid的cookie。可以说,只要获得了sessionid,就算实现了模拟登录。有了它我们便可以游离于系统之中。
三、使用Python实现登录(简单实例)
理解了登录过程的原理和细节之后,开始用Python来编写模拟登陆程序吧。
3.1导入模块
不要忘记编写文件头、导入必要的依赖模块
3.2构造登录请求
登录请求的实体部分如下:
全部Python代码:
附加参数
防盗链
Web 应用的资源都是有url的,只要获得了url就能够在任何地方引用。听起来很方便,但这可能会导致你的资源被别人盗用。
3.3发送请求并保存cookie
Python代码如下:
如果登陆成功
就可以在指定的文件my_cookies.txt中看到sessionid了。
3.4 使用cookie访问系统服务
在我们模拟登录成功后,就可以直接通过opener打开这个url来使用这项系统服务。代码实现如下:
如果有是在另外一个python文件中使用这个cookie的话,再打开url之前需要先载入cookie:
关于通过抓包实现Python模拟登陆各网站的原理分析是怎样的就分享到这里了,希望
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/133811.html