美文网首页
我的“女生节”?

我的“女生节”?

作者: 慕长风啊 | 来源:发表于2019-03-09 14:53 被阅读0次

    一年一度的女生节又到了,校园里开始各种活动不断,这么青春活力的日子里,怎么能少的了男生的参与呢?


    背景

    校园app上推出了一年一度的活动——“小幸运”
    女孩子们在上面许愿,男孩子们则可以随机查看,然后选择是否去点亮她的愿望
    像这样:

    wish
    看到这里我就心动了,遇到这般美丽的数据,不想办法爬下来然后搞点事情,怎么好意思说自己是个学Python的呢?
    smile

    准备活动

    手机app,用“抓包精灵”抓包很方便,找到对应请求后再上电脑重放进行后续分析
    登录过程放后边再讲,先来瞅一瞅“查看愿望”的数据包


    get_wish

    emmmm..看了一下,貌似简单的过分了,都不用带cookies,直接一个get请求然后就会返回json数据,这里就直接上网页截图了
    所以后边加个多线程爬取,顶多再加个续存和数据去重就完事了?

    思维发散

    好不容易想写个博客,怎么可能这么简单就结束了呢?!
    前面已经提到过,愿望查看是随机的,所以男同胞们选择点亮的愿望其实也具有一定的随机性
    当然,某种意义上讲,这样会比较浪漫
    但是如果就这样结束了,我后边就没啥可写的了啊。。
    所以!
    我就去分析了下“点亮愿望”的数据包,果不其然,其中有一个wishId的参数,这个参数就对应着前面爬取的愿望id,手机上看不到,所以也没法指定,但是电脑上可以轻松完成这一步骤
    于是乎,一个伟大的idea诞生了!
    我要把登录接口调到自己的公众号上,让男同胞们,看完了我爬取的“愿望集”之后,想点哪个点哪个!
    最终效果图:


    wechat

    真正的开始

    说做就做,立马去抓登录请求包,发现登录接口用的是学校另一个网站的,跳转过去再抓包分析
    提交的表单数据如下:

    login
    ???
    我输入的用户名密码呢??怎么找不到了??
    emmm..RSA??好吧,看样子是给加密了:P
    说起来我是个前端渣,这种情况遇的比较少
    不过只要是在客户端进行的操作,我们的小爬虫就都能完成!
    那就去找找看它的加密过程叭
    翻一翻它的js文件
    js
    就是你了!des.js!
    打开来瞅瞅
    des_js
    ???
    怎么感觉怪怪的??
    上百度一搜,好家伙...原来网上随手复制下来的...
    baidu
    得,都用不着细细分析了,人家把好几种加密解密方式都写全了一起塞里面了
    直接跳到loing3.js里去搜加密函数就行了
    strEnc
    这里的u,p分别是用户名密码,lt是表单里一个隐藏数据,顺手爬下来就行了
    然后在Python调用node.js将相应的数据加密一下就得到了目标参数rsa了
    然而这只是登录的第一步...
    说起来就觉得坑,到后面整个脚本写完了我才整明白它这个登录流程——
    先是从活动官网跳到学校学生网站去登录,这里的登录就是上面分析的过程,登陆成功后返回一个学生信息的json数据,再跳转回活动网站将整个用户信息的json数据作为参数提交..
    至此把整个登录过程写成了脚本形式
    后面“选择愿望”的时候,只需要post对应的网址再加上一个wishId就好了

    后续工作

    最后就是要将公众号与脚本对接了
    公众号平时没怎么用,就挂了一个聊天机器人
    趁这次活动,把整个答复流程重写了下
    由于访问量增大,就把先前机器人的接口给关闭了
    按照一定格式输入用户名密码和愿望id就能成功点亮她的愿望了!
    回复“#小幸运”就能获取“愿望集”哦!

    结语

    最后我想吐槽一下学校网站的加密手段。。。
    js文件是网上随手复制的还算凑合,但是原文件中还包含解密方式是什么鬼。。
    然后用的是DES加密,该网站平时学生访问量并不大,有空还是改成RSA加密叭

    哦对了,完整的代码已上传到Github:慕风的Gayhub

    原文地址

    相关文章

      网友评论

          本文标题:我的“女生节”?

          本文链接:https://www.haomeiwen.com/subject/vspcpqtx.html