python爬虫-逆向实例小记-2

这篇具有很好参考价值的文章主要介绍了python爬虫-逆向实例小记-2。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

注意!!!!某数据网站逆向实例仅作为学习案例,禁止其他个人以及团体做谋利用途!!!!

案例分析

第一步:分析请求和响应内容。该网站任何一请求和内容都不可直接阅读

python爬虫-逆向实例小记-2,Python,python,开发语言

 python爬虫-逆向实例小记-2,Python,python,开发语言

第二步: 通过分析(至于咋分析的,全凭经验)。个人通过加密内容对全局进行AES关键词搜索,并未查到。因此在搜索 JSON.parse 可查到多个。筛选后选择 可传入object对象的。或者此网站 可以对 请求参数的payload 和sig 进行确定。总之我是凭经验

python爬虫-逆向实例小记-2,Python,python,开发语言 第三步:打断点,通过json.parse查找 可以对关键处打断点。刷新后可以看到一些重要信息。可以在console 中进行查看。下图所示可以看到

t :是第一次请求

s: 是加密前的参数

f:是加密后的参数一

p: 是加密后的参数二

python爬虫-逆向实例小记-2,Python,python,开发语言

python爬虫-逆向实例小记-2,Python,python,开发语言 第四步:第一次请求后,响应内容加载和解析

l:是第一次请求后加密响应内容

v:是第一次请求后解密响应内容

python爬虫-逆向实例小记-2,Python,python,开发语言 python爬虫-逆向实例小记-2,Python,python,开发语言

第五步:第二次请求后,响应和内容

t :是第一次请求

s: 是加密前的参数

f:是加密后的参数一

p: 是加密后的参数二

python爬虫-逆向实例小记-2,Python,python,开发语言

python爬虫-逆向实例小记-2,Python,python,开发语言 第六步:将鼠标放在object 后面上能够看到调用的函数。出现提示点进去即可查看,加密解密内核。例如:e2 和 d1 该网站调用了一些,不止于给出的例子。活学活用!最后v 是解密后的内容

 python爬虫-逆向实例小记-2,Python,python,开发语言

python爬虫-逆向实例小记-2,Python,python,开发语言

python爬虫-逆向实例小记-2,Python,python,开发语言 python爬虫-逆向实例小记-2,Python,python,开发语言

python爬虫-逆向实例小记-2,Python,python,开发语言

python爬虫-逆向实例小记-2,Python,python,开发语言

 

最后加密解密

鄙人能力有限仅在js 文件中测试出来结果未能将其改写成python

var md5 = require('md5');
var _p = "W5D80NFZHAYB8EUI2T649RT2MNRMVE2O";
var _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
function d1(e) {
                var t, n, r, o, i, a, c = "", u = 0;

                for (e = e.replace(/[^A-Za-z0-9\+\/\=]/g, ""); u < e.length; )
                    t = _keyStr.indexOf(e.charAt(u++)) << 2 | (o = _keyStr.indexOf(e.charAt(u++))) >> 4,
                    n = (15 & o) << 4 | (i = _keyStr.indexOf(e.charAt(u++))) >> 2,
                    r = (3 & i) << 6 | (a = _keyStr.indexOf(e.charAt(u++))),
                    c += String.fromCharCode(t),
                    64 != i && (c += String.fromCharCode(n)),
                    64 != a && (c += String.fromCharCode(r));
                return c
            }
function _u_d(e) {
                for (var t = "", n = 0, r = 0, o = 0, i = 0; n < e.length; )
                    (r = e.charCodeAt(n)) < 128 ? (t += String.fromCharCode(r),
                    n++) : r > 191 && r < 224 ? (o = e.charCodeAt(n + 1),
                    t += String.fromCharCode((31 & r) << 6 | 63 & o),
                    n += 2) : (o = e.charCodeAt(n + 1),
                    i = e.charCodeAt(n + 2),
                    t += String.fromCharCode((15 & r) << 12 | (63 & o) << 6 | 63 & i),
                    n += 3);
                return t
            }

function d2(e) {

                for (var t = "", n = 0; n < e.length; n++) {
                    var r = _p.charCodeAt(n % _p.length);
                    t += String.fromCharCode(e.charCodeAt(n) ^ r)
                }
                return t = _u_d(t)
            }

 function _u_e(e) {
     if (null == e)
         return null;
     e = e.replace(/\r\n/g, "\n");
     for (var t = "", n = 0; n < e.length; n++) {
         var r = e.charCodeAt(n);
         r < 128 ? t += String.fromCharCode(r) : r > 127 && r < 2048 ? (t += String.fromCharCode(r >> 6 | 192),
             t += String.fromCharCode(63 & r | 128)) : (t += String.fromCharCode(r >> 12 | 224),
             t += String.fromCharCode(r >> 6 & 63 | 128),
             t += String.fromCharCode(63 & r | 128))
     }
     return t
 }
function e1(e) {
                if (null == e)
                    return null;
                for (var t, n, r, o, i, a, c, u = "", s = 0; s < e.length; )
                    o = (t = e.charCodeAt(s++)) >> 2,
                    i = (3 & t) << 4 | (n = e.charCodeAt(s++)) >> 4,
                    a = (15 & n) << 2 | (r = e.charCodeAt(s++)) >> 6,
                    c = 63 & r,
                    isNaN(n) ? a = c = 64 : isNaN(r) && (c = 64),
                    u = u + _keyStr.charAt(o) + _keyStr.charAt(i) + _keyStr.charAt(a) + _keyStr.charAt(c);
                return u
            }

function e2(e) {
                if (null == (e = _u_e(e)))
                    return null;
                for (var t = "", n = 0; n < e.length; n++) {
                    var r = _p.charCodeAt(n % _p.length);
                    t += String.fromCharCode(e.charCodeAt(n) ^ r)
                }
                return t
            }
function sig(e) {
                return md5(e + _p).toUpperCase()
            }

function s1(n) {
    var s = JSON.stringify(n)
        , l = JSON.parse(s);
    var f = e1(e2(JSON.stringify(l.payload)))
        ,p = sig(f);
    l.payload = f
    l.sig = p
    return l;
}


n = {}
// l = s1(n)
// console.log(l)
// l1 = d1(l.payload)
// l2 = d2(l1)
// console.log(l2)

 仅作为笔记记录,如有问题请各位大佬来指导文章来源地址https://www.toymoban.com/news/detail-516431.html

到了这里,关于python爬虫-逆向实例小记-2的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python爬虫猿人学逆向系列——第六题

    题目:采集全部5页的彩票数据,计算全部中奖的总金额(包含一、二、三等奖) 地址:https://match.yuanrenxue.cn/match/6 本题比较简单,只是容易踩坑。话不多说请看分析。 两个参数,一个m一个f,与cookie无关,但是这里会遇到第一个坑,在响应数据中。 可以发现只有三等奖的金

    2024年02月11日
    浏览(34)
  • Python爬虫:抖音 JS XB逆向解析

    哈喽兄弟们,抖音现在有JS加密,以前的方法爬不了饿了,今天来实现一下某音短视频的JS逆向解析。 知识点 动态数据抓包`在这里插入代码片` requests发送请求 X-Bogus 参数逆向 环境模块 python 3.8               运行代码 pycharm 2022.3           辅助敲代码 requests 

    2024年02月08日
    浏览(40)
  • Python逆向爬虫入门教程: 酷狗音乐加密参数signature逆向解析

    网站链接: aHR0cHM6Ly93d3cua3Vnb3UuY29tLw== 正常抓包分析找到音频链接地址   通过链接搜索找到对应的数据包位置     分析 signature 参数加密位置     通过 s 列表 合并成字符串, 传入d函数中进行加密, 返回32位, 还是比较明显的MD5加密, 相当于请求参数除了signature 以外, 在头尾加了一

    2024年02月02日
    浏览(37)
  • 关于 Python 爬虫 JS 逆向的入门指南

    请注意,这篇指南只是一个概述,为了深入理解和实践,你可能需要额外的学习和实践。         Python 爬虫经常遇到需要逆向 JavaScript 生成的网站内容和逻辑的情况。这种技能对于爬取动态网站,尤其是那些使用了复杂 JS 逻辑和反爬虫技术的网站,尤其重要。 Python 爬虫概

    2024年01月16日
    浏览(32)
  • Python逆向爬虫入门教程: 网易云音乐加密参数 params & encSecKey 逆向解析

    网站链接: aHR0cHM6Ly9tdXNpYy4xNjMuY29tLyMvZGlzY292ZXIvdG9wbGlzdD9pZD0zNzc4Njc4 正常流程抓包分析数据, 找到音频链接   找到歌曲信息对应数据包         分析加密参数位置     找到对应的加密位置, 其余就去扣代码即可, 缺什么补什么就行了, 主要是注意一下传入的参数问题, 因为它传入的

    2024年03月27日
    浏览(47)
  • 【逆向爬虫】Python中执行调用JS的多种方法汇总

    “以前的数据靠买,现在的数据靠爬”,越来越多的学者通过网络爬虫来获取数据。但是做爬虫的人都知道,现在的很多网站都在和我们斗智斗勇,防护普遍越来越好,并且越有价值的网站在这方面越强,哪怕是小一点的网站也多多少少存在一些反爬。而JS逆向又是网络反爬

    2024年02月04日
    浏览(50)
  • Python爬虫:js逆向调式操作及调式中遇到debugger问题

    1. 前言 本篇博客主要讲解js逆向调式操作及调式中遇到debugger问题,内容参考自网上的一些视频讲解结合自己所做过的爬虫测试,觉得小编总结的还不错的读者记得点赞支持一下( 内容仅供学习使用 )。 2. js逆向调式操作 2.1 DOM事件断点 比如虎牙直播登录操作,想快速找到找到

    2024年02月13日
    浏览(34)
  • python爬虫之JS逆向基础小案例:网抑云数据获取

    嗨喽~大家好呀,这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 所用软件 解释器: python 3.8 编辑器: pycharm 2022.3 使用的模块 第三方模块: requests 数据请求 execjs pip install pyexecjs 内置模块(无需安装): nodejs 模块安装: win + R 输入cmd 输入安

    2024年01月20日
    浏览(37)
  • Python爬虫逆向实战案例(五)——YRX竞赛题第五题

    题目:抓取全部5页直播间热度,计算前 5 名直播间热度的 加和 地址:https://match.yuanrenxue.cn/match/5 cookie中m值分析 首先打开开发者工具进行抓包分析,从抓到的包来看,参数传递了查询参数 m 与 f ,同时页面中给了提示说cookie仅有50秒的有效期,所以逆向参数可以直接通过co

    2024年02月11日
    浏览(31)
  • 【Python】什么是爬虫,爬虫实例

     有s表示加密的访问方式 什么是爬虫 网络爬虫,是一种按照一定规则,自动抓取互联网信息的程序或者脚本。由于互联网数据的多样性和资源的有限性,根据用户需求定向抓取相关网页并分析已成为如今主流的爬取策略 爬虫可以做什么 你可以爬取图片,爬取自己想看的视频

    2024年02月02日
    浏览(73)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包