python3下使用requests实现模拟用户登录 —— 基础篇(马蜂窝)

我是从这篇博客中(https://blog.csdn.net/zwq912318834/article/details/79571110)了解的一点基础东西,代码都是从这篇博客里面的源代码直接复制过去测试和学习的。

遇到的问题:

1、返回状态码:502——百度得知这是一个反爬虫的状态码,原博主是写于2018年3月份,我测试是在2020年2月份,说明马蜂窝已经做了反爬虫的策略,由于自己这方面不够火候,没有继续追究,因此继续测试和学习其他的东西

2、博客里面的几个链接是怎么获得的?

  • https://passport.mafengwo.cn/login/————这个链接,博客里面开始就写的很明白了
  • http://www.mafengwo.cn/plan/route.php————这个链接是登录成功后才能打开的其中一个页面,自己可以选择页面,页面的链接就从地址栏获得,是为了测试爬虫程序模拟登录的时候是否成功的,如果说程序请求这个页面返回状态码200,则成功,否则失败
  • http://www.mafengwo.cn/plan/fav_type.php————这个链接登录成功后的跳转链接,即当已经登录过,有cookies的时候,就可以直接打开,目的是程序中获得的cookies还有效,返回状态码200,即模拟登录成功

3、cookies是怎么获得和保存的?火候不够,主要百度了这个对象而了解一二:

cookielib.LWPCookieJar(filename = "mafengwoCookies.txt"),这段程序是把cookies保存到项目目录下,名字叫mafengwoCookies的文件

4、cookies怎么获得和保存?程序如下图位置

5、原博主的最终程序有个小bug,当删除了这个cookies文件后,运行博主的最终程序会报错

原因是入口程序的逻辑问题

原入口程序

if __name__ == "__main__":# 第一步:尝试使用已有的cookie登录mafengwoSession.cookies.load()isLogin = isLoginStatus()print(f"is login mafengwo = {isLogin}")if isLogin == False:# 第二步:如果cookie已经失效了,那就尝试用帐号登录print(f"cookie失效,用户重新登录...")mafengwoLogin("13798233592", "Aa1111111")resp = mafengwoSession.get("http://www.mafengwo.cn/plan/fav_type.php", headers = header, allow_redirects = False)print(f"resp.status = {resp.status_code}")

修改后的入口程序

if __name__ == "__main__":# 第一步:尝试使用已有的cookie登录try:mafengwoSession.cookies.load()except:print(f"本地没有cookies文件,重新获取中...")isLogin = isLoginStatus()print(f"is login mafengwo = {isLogin}")if isLogin == False:# 第二步:如果cookie已经失效了,那就尝试用帐号登录print(f"cookie失效,用户重新登录...")mafengwoLogin("13798233592", "Aa1111111")resp = mafengwoSession.get("http://www.mafengwo.cn/plan/fav_type.php", headers = header, allow_redirects = False)print(f"resp.status = {resp.status_code}")

至此,Python利用requests模块模拟登录测试完成,获得了一点基础入门的小知识吧

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/413311.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ACM-ICPC 2018 焦作赛区网络预赛 H题 String and Times(SAM)

Now you have a string consists of uppercase letters, two integers AA and BB. We call a substring wonderful substring when the times it appears in that string is between AA and BB (A \le times \le BA≤times≤B). Can you calculate the number of wonderful sub…

[css] css的height:100%和height:inherit之间有什么区别呢?

[css] css的height:100%和height:inherit之间有什么区别呢? 上周在微博上无节操吐槽了下inherit的段子,没想到回声还不少: 微博inherit无节操段子 不过inherit确实是个好东西,不仅节约代码,尤其与background之流打交…

http详解 请求报文格式和响应报文格式

题外话: 《Pi Network 免费挖矿国外热门项目 一个π币大约值3元到10元》相信过去BTC的人,信不信未来的PI,了解一下,唯一一个高度与之持平的项目 HTTP 工作原理 超文本传输协议(Hypertext Transfer Protocol,简称HTT…

【LeetCode】拓扑排序

【207】 Course Schedule 排课问题&#xff0c;n门课排课&#xff0c;有的课程必须在另外一些课程之前上&#xff0c;问能不能排出来顺序。 题解&#xff1a;裸的拓扑排序。参考代码见算法竞赛入门指南这本书。 1 class Solution {2 public:3 bool dfs(const vector<vec…

Python2和Python3的兼容性写法

# python2 和 python3的兼容代码 try:# python2 中import cookielibprint(f"user cookielib in python2.") except:# python3 中import http.cookiejar as cookielibprint(f"user cookielib in python3.")

[css] 说说你对sass的嵌套规则的理解?

[css] 说说你对sass的嵌套规则的理解&#xff1f; 嵌套类型有&#xff1a;选择器嵌套、属性嵌套、伪类嵌套、群组选择器嵌套 。 .tenant-detail { background: transparent!important; .tenant-container { //1.选择器嵌套 width: 100%; > div { margin: 0{ //2.属性嵌套 相…

AGC027B Garbage Collector

一道很好的构造题原题链接 很快就能想到&#xff0c;捡每个垃圾的能量可以最后再算。然后&#xff0c;对于每个垃圾&#xff0c;在路上耗费的能量仅与它是第几个被捡的有关&#xff0c;于是我们考虑将垃圾分组。 首先&#xff0c;我们定义\(F(x,i)\)为某次从\(0\)出发&#xff…

[css] 你认为sass和less的最大区别是什么呢?你喜欢哪个?为什么?

[css] 你认为sass和less的最大区别是什么呢&#xff1f;你喜欢哪个&#xff1f;为什么&#xff1f; less 没有循环只有递归&#xff1b; less 没有 if 只有 when&#xff1b; sass 多个 function 很棒&#xff0c;否则只能堆变量了&#xff1b; less 拼接类名的字符串需加上 ~…

Python爬虫自学之第(零)篇——爬虫思路和request模块使用

题外话&#xff1a; 《Pi Network 免费挖矿国外热门项目 一个π币大约值3元到10元》相信过去BTC的人&#xff0c;信不信未来的PI&#xff0c;了解一下&#xff0c;唯一一个高度与之持平的项目 爬虫思路 无思路不成器&#xff0c;如果你怎么想都想不出爬虫的原理&#xff0c;…

[css] css的哪个属性可以把所有元素或其父元素的属性重置呢?

[css] css的哪个属性可以把所有元素或其父元素的属性重置呢&#xff1f; all:unset个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

pycharm中更新pip版本的问题

经常使用Python的都知道pip&#xff0c;但有时候&#xff0c;下载某个模块不成功&#xff0c;提示信息如下 pytharm查看自带的pip版本 解决方式一&#xff1a; pytharm的terminal里卸载pip再安装pip 如果还不行&#xff0c;解决方式二 去你当前的项目路径下找到lib文件夹下的…

[css] 如何取消从父级元素继承下来的CSS样式呢?

[css] 如何取消从父级元素继承下来的CSS样式呢&#xff1f; 如果是恢复单个属性样式&#xff0c;例如font-size&#xff0c;可以使用 font-size: initial; 如果是将所有属性样式恢复为默认状态&#xff0c;可以使用 all: initial; 个人简介 我是歌谣&#xff0c;欢迎和大家…

小程序的wx.onAccelerometerChange

https://www.2cto.com/kf/201802/724174.html&#xff08;copy&#xff09; 也许有人会问&#xff0c;小程序中都是竖直app形态&#xff0c;要横竖屏判断有什么用?即使判断出了横屏状态&#xff0c;你能把小程序横过来?答案是不能的&#xff0c;但是判断当前设备处于横屏或者…

Python爬虫自学之第(②)篇——BeautifulSoup解析网页

题外话&#xff1a; 《Pi Network 免费挖矿国外热门项目 一个π币大约值3元到10元》相信过去BTC的人&#xff0c;信不信未来的PI&#xff0c;了解一下&#xff0c;唯一一个高度与之持平的项目 学了requests&#xff0c;了解了伪装技巧后&#xff0c;终于能爬到些比较正常的网页…

[css] 说下你对css样式的这几个属性值initial、inherit、unset、revert的理解

[css] 说下你对css样式的这几个属性值initial、inherit、unset、revert的理解 initial&#xff08;初始&#xff09;、inherit&#xff08;继承&#xff09;、unset&#xff08;未设置&#xff09;、revert&#xff08;还原&#xff09; inherit可以继承父级元素的属性&#x…

Django通过中间件实现登录验证demo

前提&#xff1a;中间件版的登录验证需要依靠session&#xff0c;所以数据库中要有django_session表。 1 from django.conf.urls import url2 from django.contrib import admin3 from app01 import views4 5 urlpatterns [6 url(r^admin/, admin.site.urls),7 url(r^…

Python爬虫自学之第(③)篇——实战:requests+BeautifulSoup实现静态爬取

题外话&#xff1a; 《Pi Network 免费挖矿国外热门项目 一个π币大约值3元到10元》相信过去BTC的人&#xff0c;信不信未来的PI&#xff0c;了解一下&#xff0c;唯一一个高度与之持平的项目 前篇全片都是生硬的理论使用&#xff0c;今天就放个静态爬取的实例让大家体验一下B…

[css] 如何解决css加载字体跨域的问题?

[css] 如何解决css加载字体跨域的问题&#xff1f; 刚才碰到一个css加载字体跨域问题&#xff0c;记录一下。 站点的动态请求与静态文件请求是不同的域名的。站点的域名为 www.domain.com&#xff0c;而静态文件的域名为 st.domain.com。 问题&#xff1a; 页面中加载css文件&…

django cookie、session

1.cookie (1)什么是cookie? 服务器让浏览器保存在浏览器本地的键值对 (2) 为什么要有cookie&#xff1f; 因为http协议无状态&#xff0c;每一次访问请求没有任何关系&#xff0c;无法保存状态 (3)cookie的特点&#xff1f; cookie是由服务器给浏览器设置的 在同一个浏览器中访…

Python爬虫自学之第(④)篇——强大的正则表达式,re模块

题外话&#xff1a; 《Pi Network 免费挖矿国外热门项目 一个π币大约值3元到10元》相信过去BTC的人&#xff0c;信不信未来的PI&#xff0c;了解一下&#xff0c;唯一一个高度与之持平的项目 如果把BeautifulSopu比喻成通过线索一步步接近目标的侦探的话&#xff0c;那么正则…