zoukankan      html  css  js  c++  java
  • 爬虫之如何找js入口(一)

    目标网页:https://m.gojoy.cn/pages/login/ 将我删除i ndex?from=%2Fpages%2Fuser%2Findex

    需要工具:chrome和油猴

    油猴代码:

    // ==UserScript==
    // @name         Json.stringify
    // @namespace    http://tampermonkey.net/
    // @version      0.1
    // @description  try to take over the world!
    // @author       You
    // @include        *
    // @grant        none
    // ==/UserScript==
    
    (function(){
        "use strict";
        var rstringify = JSON.stringify;
        JSON.stringify = function(a){
            console.log("Detect Json.stringify", a);
            return rstringify(a);
        }
    })();

    第一步,F12,在第三行数字上,右键选择 Add conditional breakpoint, 用于越过反调试

     如果还是卡住那么,点击这个,变成蓝色

    然后点击 

     第二步,如果已经加载完成了, 随便输入账号密码,点击登录,查看Network里的新url。发现是login为登录请求

    点击查看,发现下面有一串看不懂的参数,猜测这就是将账号密码等东西进行加密得出来的

    尝试一、全文搜索username , password   以找不到,失败告终 

    尝试二、查看以什么格式加载的

    首先看到Response Headers中有个Access-Control-Allow-Credentials:true 说明这个是个跨域请求

    关掉详细信息后看到是  xhr 方式加载

     打 XHR断点,输入 相应的字串,进行HOOK

     上述完成后,再次输入好账号密码,登录

    如果没问题的话就会停在

     

     call stack(回调调用栈)中,一个个往下点击,直到看到类似于ajax加载的格式代码

    so,找到了s这个位置就很像ajax,然后在3643那个位置点击左键,设置断点

     

    先点击让当前代码先执行完毕,重新点击页面的登录按钮

    没什么意外就会停在s这个位置,从上到下将t,y,h,Q,u,d,全部在console中打印出来

     看到u的值证明没找错!!!说明就是通过这里进行与后端的通信,且根据Q这个函数进行的将u内容进行不知名的操作

    所以可以猜测应该是这里得出了上面request中那一串很长的参数

     双击上面输出内容中native code 就会跳转到函数定义 (一般而言,natvie code是跟不进去的)

     跳转后,找到这个函数return,所以点击 { ,找到对应的 } ,找到返回值位置return a[o.m[[o.m.i[";"]]].q](o.m[[o.m.i[";"]]].x),给其打上断点

     

     然后,还是先让当前跑完,重新点击登录,然后就会停在新增加的断点位置 

     接下来,在console打印出返回值

     出现个与login网页中很相似的参数值,那么还是让当前跑完,然后点击Network查看最新的login的详细信息,看看是不是一样的

     

     然而很显然一模一样!!!!

    所以说这个函数 , 对username和password操作后的出来的

     

     那么此时入口发现了,之后只需要execjs包执行或者,将js代码翻译为python代码放进爬虫中操作就可以了

    上面为最常用的操作

    ============================================================================

    接下来油猴脚本操作方式效果一样,但是更快速定位!!!!

    建好脚本后开启,如何使用脚本,写脚本这里暂不论述

     输入好账密后点击登录,console就会打印出下图 ,然后点击红框位置,跳转后打上断点

     

     先执行完毕后,再重新点击登录,查看调用栈,点击s

    跳转后,拖动滑动条到最左边,看到位置2就和上面的所找到的js函数一摸一样,方便很多对吧!!!!

  • 相关阅读:
    注册表
    windows.location.href在IE6下停止工作
    LINUX配置IP的三种方式
    InnoSetup 打包代码 检测.netFramework
    SQLiteHelper
    黑马程序员_看视频记笔记_C#编程基础02
    通过注册表来检测是否安装Office
    SQLiteHelper
    TSQL
    IIS下发布关于Excel导入导出时遇到的问题集锦
  • 原文地址:https://www.cnblogs.com/7134g/p/11743806.html
Copyright © 2011-2022 走看看