Python模拟登录的几种方法
方法一:直接使用已知的cookie访问
方法二:模拟登录后再携带得到的cookie访问
方法三:模拟登录后用session保持登录状态
方法四:使用无头浏览器访问
方法一:直接使用已知的cookie访问
使用已知的cookie来访问,简单来说,就是——只要得到了别的客户端的cookie,我们就可以假冒成它来和服务器对话。这给我们的程序带来了可乘之机。
用cookie访问就会有一下的好处:
- 可配置到期规则 Cookie 可以在浏览器会话结束时到期,或者可以在客户端计算机上无限期存在,这取决于客户端的到期规则。
- 简单性 Cookie 是一种基于文本的轻量结构,包含简单的键值对。
- 数据持久性 虽然客户端计算机上 Cookie 的持续时间取决于客户端上的 Cookie 过期处理和用户干预,Cookie 通常是客户端上持续时间最长的数据保留形式。
方法二:模拟登录后再携带得到的cookie访问
原理: 我们先在程序中向网站发出登录请求,也就是提交包含登录信息的表单(用户名、密码等)。从响应中得到cookie,今后在访问其他页面时也带上这个cookie,就能得到只有登录后才能看到的页面。
方法三:模拟登录后用session保持登录状态
首先了解一下session的基本原理: 浏览器和服务器采用http无状态的通讯,为了保持客户端的状态,使用session来达到这个目的。在session机制中,采用了一个唯一的session_id来标示不同的用户,浏览器每次请求都会带上由服务器为它生成的session_id.
当客户端访问服务器时,服务器根据需求设置session,将会话信息保存在服务器上,同时将标示session的session_id传递给客户端浏览器,
浏览器将这个session_id保存在内存中(还有其他的存储方式,例如写在url中),我们称之为无过期时间的cookie。浏览器关闭后,这个cookie就清掉了,它不会存在用户的cookie临时文件。以后浏览器每次请求都会额外加上这个参数值,再服务器根据这个session_id,就能取得客户端的数据状态。
方法四:使用无头浏览器访问
无头浏览器说白了就是能模拟人工在有头浏览器中的各种操作。那自然很多人力活,都能使用无头浏览器来做(比如上面这个下载 pdf 的过程,其实是人力打开每一个文章页面,然后按 ctrl+p 或 command+p 保存到本地的自动化过程)。
无头浏览器列举:
- PhantomJS:基于QtWebkit的无头浏览器,第一看到PhantomJS以为是一个NodeJS的模块,其实PhantomJS和NodeJS的处于同等级别的应用,两者毫无关系。唯一有联系的就是他们使用的开发语言都是javascript
- SlimerJS:基于Gecko的无头浏览器,SlimerJS和PhantomJS基本兼容,就是一个内核换成了Gecko的PhantomJS
- HtmlUnit:纯java开发的无头浏览器,完全java开发,javascript引擎使用的是Rhnio,由于不是基于Webkit、Gecko等主流内核开发,兼容性不好
最后
文章来源互联网,如有侵权,请联系管理员删除。邮箱:417803890@qq.com / QQ:417803890
- 系列教程
- Python爬虫:短视频平台无水印下载
- 用纯Python就能写一个漂亮的网页,再见HTML
- 「从零开始Python爬虫」2.2 小白必备的网页基础知识
- 使用python构建静态网站之一:绪言
- Python爬虫之保存网页到本地
- 大写牛批,用Python登录国内主流24个网站
- Python网页内容提取库总结
- 解放双手 | 10行Python代码实现一款网页自动化工具
- Python实用案例编程入门:第十七章 利用Python建立个人网站
- 再见HTML ! 用纯Python就能写一个漂亮的网页!简单好用
- 每天五分钟—Python机器学习:使用Python进行基本文本处理
- 「每日一练」Python文本框的显示和插入
- 在Python中构建基于文本的RPG引擎
- 如何实现Python的文本框与按钮
- python 字符串和文本处理
- 青灯教育|Python字符串处理,文本分析技巧
- Python学习之路23-文本和字节序列
- 使用python实现文本的快速翻译_基于百度翻译
- 大佬整理出来的干货:LDA模型实现—Python文本挖掘
- 6 款 Python 特殊文本格式处理库推荐
</div>