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模块模拟登录测试完成,获得了一点基础入门的小知识吧

  • 12
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

1学习者1

打赏作者一杯咖啡与妹子坐坐吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值