我的编程空间,编程开发者的网络收藏夹
学习永远不晚

通过抓包实现Python模拟登陆各网站的原理分析

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

通过抓包实现Python模拟登陆各网站的原理分析

今天就跟大家聊聊有关通过抓包实现Python模拟登陆各网站的原理分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

一、教程

1.1 基本介绍

通过分析登陆流程并使用 Python 实现模拟登陆到一个实验提供的网站,在实验过程中将学习并实践 Python 的网络编程,Python 实现模拟登陆的方法,使用 Firefox 抓包分析插件分析网络数据包等知识。

模拟登录可以帮助用户自动化完成很多操作,在不同场合下有不同的用处,无论是自动化一些日常的繁琐操作还是用于爬虫都是一项很实用的技能。本课程通过 Firefox 和 Python 来实现,环境要求如下:

  • Python 库:urllib, http.cookiejar, Django

  • Firefox 要求:装有 live http header插件 (已提供)

通过抓包实现Python模拟登陆各网站的原理分析

1.3 材料

通过抓包实现Python模拟登陆各网站的原理分析

1.4 准备

1) 安装抓包插件Live Http Headers

通过抓包实现Python模拟登陆各网站的原理分析

通过抓包实现Python模拟登陆各网站的原理分析

通过抓包实现Python模拟登陆各网站的原理分析

通过抓包实现Python模拟登陆各网站的原理分析

通过抓包实现Python模拟登陆各网站的原理分析

2)启动web应用

使用 ps -aux | grep codebox 查询获得 codebox 的进程号,然后使用 kill -9 进程号 停止 codebox 进程。执行过程见下图:

通过抓包实现Python模拟登陆各网站的原理分析

首先安装demo依赖的web框架django,并测试是否安装成功:

通过抓包实现Python模拟登陆各网站的原理分析

启动成功后在浏览器中输入 http://localhost:8000/polls 看到登录页面表示启动成功

通过抓包实现Python模拟登陆各网站的原理分析

二、分析登录过程

要通过编程实现登录,首先需要理解一般Web应用的登陆过程。

通过抓包实现Python模拟登陆各网站的原理分析

2.1 抓取请求

通过抓包实现Python模拟登陆各网站的原理分析

2.2原理分析

通过抓包实现Python模拟登陆各网站的原理分析

通过抓包实现Python模拟登陆各网站的原理分析

为什么是2个请求而不是1个呢?通过分析登录请求发现,登陆成功之后服务器发送了302重定向响应,服务器要求浏览器重新请求首页,这就产生了第二个请求。再来分析第二个请求,可以看到它相比登录请求多了一个请求头:

通过抓包实现Python模拟登陆各网站的原理分析

整个登录流程如下图所示:

通过抓包实现Python模拟登陆各网站的原理分析

服务器到底是如何区别不同用户的session的?为什么登陆成功会后要回写cookie呢?

通过抓包实现Python模拟登陆各网站的原理分析

2.3小结

对于服务器来说,登录=验证+写session。对于浏览器来说,登录=发送登录信息+获取带sessionid的cookie。可以说,只要获得了sessionid,就算实现了模拟登录。有了它我们便可以游离于系统之中。

三、使用Python实现登录(简单实例)

理解了登录过程的原理和细节之后,开始用Python来编写模拟登陆程序吧。

通过抓包实现Python模拟登陆各网站的原理分析

3.1导入模块

不要忘记编写文件头、导入必要的依赖模块

通过抓包实现Python模拟登陆各网站的原理分析

3.2构造登录请求

通过抓包实现Python模拟登陆各网站的原理分析

登录请求的实体部分如下:

通过抓包实现Python模拟登陆各网站的原理分析

通过抓包实现Python模拟登陆各网站的原理分析

全部Python代码:

通过抓包实现Python模拟登陆各网站的原理分析

附加参数

通过抓包实现Python模拟登陆各网站的原理分析

防盗链

Web 应用的资源都是有url的,只要获得了url就能够在任何地方引用。听起来很方便,但这可能会导致你的资源被别人盗用。

通过抓包实现Python模拟登陆各网站的原理分析

3.3发送请求并保存cookie

通过抓包实现Python模拟登陆各网站的原理分析

Python代码如下:

通过抓包实现Python模拟登陆各网站的原理分析

如果登陆成功

通过抓包实现Python模拟登陆各网站的原理分析

就可以在指定的文件my_cookies.txt中看到sessionid了。

3.4 使用cookie访问系统服务

通过抓包实现Python模拟登陆各网站的原理分析

通过抓包实现Python模拟登陆各网站的原理分析

通过抓包实现Python模拟登陆各网站的原理分析

在我们模拟登录成功后,就可以直接通过opener打开这个url来使用这项系统服务。代码实现如下:

通过抓包实现Python模拟登陆各网站的原理分析

如果有是在另外一个python文件中使用这个cookie的话,再打开url之前需要先载入cookie:

通过抓包实现Python模拟登陆各网站的原理分析

看完上述内容,你们对通过抓包实现Python模拟登陆各网站的原理分析有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网行业资讯频道,感谢大家的支持。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

通过抓包实现Python模拟登陆各网站的原理分析

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

通过抓包实现Python模拟登陆各网站的原理分析

今天就跟大家聊聊有关通过抓包实现Python模拟登陆各网站的原理分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、教程1.1 基本介绍通过分析登陆流程并使用 Python 实现模
2023-06-17

通过抓包实现Python模拟登陆各网站的原理分析是怎样的

这篇文章将为大家详细讲解有关通过抓包实现Python模拟登陆各网站的原理分析是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。  一、教程简介  1.1 基本介绍(私信小编001 、00
2023-06-02

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录