爬虫之如何找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函数一摸一样,方便很多对吧!!!!

爬虫之如何找js入口(一)的更多相关文章
- python爬虫之快速对js内容进行破解
python爬虫之快速对js内容进行破解 今天介绍下数据被js加密后的破解方法.距离上次发文已经过去半个多月了,我写文章的主要目的是把从其它地方学到的东西做个记录顺便分享给大家,我承认自己是个懒猪.不 ...
- [Python爬虫笔记][随意找个博客入门(一)]
[Python爬虫笔记][随意找个博客入门(一)] 标签(空格分隔): Python 爬虫 2016年暑假 来源博客:挣脱不足与蒙昧 1.简单的爬取特定url的html代码 import urllib ...
- Python爬虫教程-16-破解js加密实例(有道在线翻译)
python爬虫教程-16-破解js加密实例(有道在线翻译) 在爬虫爬取网站的时候,经常遇到一些反爬虫技术,比如: 加cookie,身份验证UserAgent 图形验证,还有很难破解的滑动验证 js签 ...
- 爬虫之抓取js生成的数据
有很多页面,当我们用request发送请求,返回的内容里面并没有页面上显示的数据,主要有两种情况,一是通过ajax异步发送请求,得到响应把数据放入页面中,对于这种情况,我们可以查看关于ajax的请求, ...
- python爬虫破解带有RSA.js的RSA加密数据的反爬机制
前言 同上一篇的aes加密一样,也是偶然发现这个rsa加密的,目标网站我就不说了,保密. 当我发现这个网站是ajax加载时: 我已经习以为常,正在进行爬取时,发现返回为空,我开始用findler抓包, ...
- 《剑指offer》-链表找环入口
题目描述 一个链表中包含环,请找出该链表的环的入口结点. 初步想法是每个节点做几个标记,表示是否被访问过,那么遍历链表的时候就知道哪个被访问到了.但是不会实现. 另一个直觉是判断链表有环的算法中出现过 ...
- JS入口函数和JQuery入口函数
首先,讲一下它们的区别: (1)JS的window.onload事件必须要等到所有内容,以及外部图片之类的文件加载完之后,才会去执行. (2)JQuery入口函数是在所有标签加载完之后,就会去执行. ...
- java_爬虫_获取经过js渲染后的网页源码
md 弄了一天了……(这个月不会在摸爬虫了,浪费生命) 进入正题: 起初是想写一个爬虫来爬一个网站的视频,但是怎么爬取都爬取不到,分析了下源代码之后,发现源代码中并没有视频的dom 但是在浏览器检查元 ...
- 笔试算法题(27):判断单向链表是否有环并找出环入口节点 & 判断两棵二元树是否相等
出题:判断一个单向链表是否有环,如果有环则找到环入口节点: 分析: 第一个问题:使用快慢指针(fast指针一次走两步,slow指针一次走一步,并判断是否到达NULL,如果fast==slow成立,则说 ...
随机推荐
- C++异常实现机制
1.C函数的调用和返回 要理解C++异常机制实现之前,首先要了解一个函数的调用和返回机制,这里面就要涉及到ESP和EBP寄存器.我们先看一下函数调用和返回的流程. 下面是按调用约定__stdcall ...
- Prism框架 如何在主程序中合理的弹出子窗体
说起子窗体,大家都会想到ChildWindow,多熟悉的一个控件.不错,Sliverlight中已经提供了子窗体的具体实现,而在WPF中却没有这么好的事情(有的第三方控件商已经提供此控件).最常见的实 ...
- Selenium 2自动化测试实战30(unittest补充)
unittest补充 1.用例执行的顺序 #test.py #coding:utf-8 from Demo1 import Count import unittest class TestBdd(un ...
- python 类中__getattr__的使用
class F: def __init__(self, name): self.name = name def __getattr__(self, item): return '__getattr__ ...
- 利用netsh命令设置IP地址/DNS服务器地址
一.设置IP地址 1. 自动获取IP地址: netsh interface ip set address [name=]"本地连接" [source=]dhcp 2. 手动设置IP ...
- Docker在windows环境下的安装部署
一.准备 系统环境:Windows 10 64bit Docker安装包:Docker for Windows Installer.exe 二.安装步骤 1.开启系统的hyper-v 2. 重启电脑后 ...
- Xshell 6 安装注册说明
1.下载 官方下载到的版本在进行安装的时候,是有序列号输入框的如下图,但是好像我们从那个所谓的官网上下载的却没有,只能下载到一点击注册就跳转到一个网站的那种版本. 像上面这种版本如何下载呢? 我们去官 ...
- XCTF (app1)
打开app.一个文本框,随便输入提示如下图. 打开JEB反编译. v2调用getPackageInfo获取版本信息.一般 Android 通过 PackageInfo 这个类来获取应用安装包信息,比如 ...
- C#吾日三省吾身
全局变量与局部变量区别: 全局变量声明完毕后,就算不手动初始化赋值,也是有默认值的; 但是局部变量声明完毕后,如果不给它手动赋值,是无法直接使用这个变量的. 尽量避免少的装箱拆箱: ; .ToStri ...
- python copy与deepcopy (拷贝与深拷贝)
copy与deepcopy python 中的copy与deepcopy是内存数据的操作,但是两个函数有一定的区别. 1.copy import copy list = [1, [4, 5, 6], ...