爬虫学习(四)

目录

1.js逆向网易云(下)

2.js知识点

(1)var

var声明的作用域

 var声明的变量提升

(2)let

let声明

(3)const

const 声明

(4)var 与let(作用域)对比

3.js原型、原型对象、构造函数、实例对象

4.js条件语句与数据类型

(1)Base64 转码

5.刺猬猫加密

6.js函数


1.js逆向网易云(下)


2.js知识点

(1)var

 1、var声明的变量属于函数作用域,而let和const声明的变量属于块级作用域;

2、var声明的变量存在变量提升,而let和const没有

3、var声明的变量可以重复声明,而在同一块级作用域,let变量不能重新声明,const常量不能修改 (对象的属性和方法,数组的内容可以修改)

var声明的作用域

 使用var声明的变量,这个变量属于当前的函数作用域,如果变量的声明在任何函数外,那么这个变量 就属于全局作用域

var a = 1; //此处声明的变量a为全局变量
function foo(){
var a = 2;//此处声明的变量a为函数foo的局部变量
console.log(a);//2
}
foo();
console.log(a);//1

如果在声明变量时,省略 var 的话,该变量就会变成全局变量,如全局作用域中存在该变量,就会更新 其值

var a = 1; //此处声明的变量a为全局变量
function foo(){
a = 2;//此处的变量a也是全局变量
console.log(a);//2
}
foo();
console.log(a);//2

 var声明的变量提升

var的声明会在js预解析时把var的声明提升到当前作用域的最前面,意思是是指无论 var 出现在一个作 用域的哪个位置,这个声明都属于当前的整个作用域,在其中到处都可以访问到。只有变量声明才会提 升,对变量赋值并不会提升。

console.log(a);//undefined
var a = 1;

相当于执行以下代码

var a;
console.log(a);//undefined
a = 1;

(2)let

let声明

let 声明的变量具有块作用域的特征。 在同一个块级作用域,不能重复声明变量。

function foo(){
let a = 1;
let a = 2;//Uncaught SyntaxError: Identifier 'a' has already been declared
}

let 声明的变量不存在变量提升。

let a = 1;
console.log(a);//1
console.log(b);//Uncaught ReferenceError: b is not defined
let b = 2;

(3)const

const 声明

const 声明方式,除了具有 let 的上述特点外,其还具备一个特点,即 const 定义的变量,一旦定义后, 就不能修改,即 const 声明的为常量。 

const a = 1;
console.log(a);//1
a = 2;
console.log(a);//Uncaught TypeError: Assignment to constant variable.

但是,并不是说 const 声明的变量其内部内容不可变,如:

const obj = {a:1,b:2};
console.log(obj.a);//1
obj.a = 3;
console.log(obj.a);//3

所以准确的说,是 const 声明创建一个值的只读引用。但这并不意味着它所持有的值是不可变的,只是 变量标识符不能重新分配。 

(4)var 与let(作用域)对比

var

for (var i = 0; i < 10; i++) {
setTimeout(function(){
console.log(i);
},100)
};

(1.此时的var声明的变量i属于函数作用域,声明又不在函数里,所以i属于全局变量 。                      2.此时的定时器函数属于异步函数,隔100毫秒才会执行,而这100毫秒的时间内,for循环已经         循环结束,全局变量i已经为10 最后代码的执行后,会在控制台打印出10个10) 

主要的原因是var声明的变量的没有块级作用域。

let

for (let i = 0; i < 10; i++) {
// 每一轮都会形成一个私有的块级作用域,并且有一个私有的变量i,分别存储每一轮循环的索引
setTimeout(function(){
console.log(i);
},100)
};

 (最终会在控制台打印出0~9)


3.js原型、原型对象、构造函数、实例对象

推荐csdn博客:javascript原型对象、构造函数和实例对象_原型中所有的成员(属性和方法)都被原型所属的构造函数的实例所共享-CSDN博客


4.js条件语句与数据类型

(1)Base64 转码

有时,文本里面包含一些不可打印的符号,比如 ASCII 码0到31的符号都无法打印出来,这时可以使用 Base64 编码,将它们转成可以打印的字符。另一个场景是,有时需要以文本格式传递二进制数据,那么也可以使用 Base64 编码。

所谓 Base64 就是一种编码方法,可以将任意值转成 0~9、A~Z、a-z、`+`和`/`这64个字符组成的可打印字符。使用它的主要目的,不是为了加密,而是为了不出现特殊字符,简化程序的处理。

JavaScript 原生提供两个 Base64 相关的方法。

  • btoa():任意值转为 Base64 编码
  •  atob():Base64 编码转为原来的值
var string = 'Hello World!';
btoa(string) // "SGVsbG8gV29ybGQh"
atob('SGVsbG8gV29ybGQh') // "Hello World!"

注意,这两个方法不适合非 ASCII 码的字符,会报错。

btoa('你好') // 报错

 要将非 ASCII 码字符转为 Base64 编码,必须中间插入一个转码环节,再使用这两个方法。

function b64Encode(str) {
  return btoa(encodeURIComponent(str));
}

function b64Decode(str) {
  return decodeURIComponent(atob(str));
}

b64Encode('你好') // "JUU0JUJEJUEwJUU1JUE1JUJE"
b64Decode('JUU0JUJEJUEwJUU1JUE1JUJE') // "你好"


5.刺猬猫加密

python源码

import requests
import execjs


headers = {
    "authority": "www.ciweimao.com",
    "accept": "application/json, text/javascript, */*; q=0.01",
    "accept-language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
    "cache-control": "no-cache",
    "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
    "origin": "https://www.ciweimao.com",
    "pragma": "no-cache",
    "referer": "https://www.ciweimao.com/chapter/111446252",
    "sec-ch-ua": "^\\^Not_A",
    "sec-ch-ua-mobile": "?0",
    "sec-ch-ua-platform": "^\\^Windows^^",
    "sec-fetch-dest": "empty",
    "sec-fetch-mode": "cors",
    "sec-fetch-site": "same-origin",
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0",
    "x-requested-with": "XMLHttpRequest"
}
def get_js():
    f = open("刺猬猫.js", 'r',encoding='utf8')
    line = f.readline()
    htmlstr = ''
    while line:
        htmlstr = htmlstr+line
        line = f.readline()
    return htmlstr

def get_des_psswd(e):
    js_str = get_js()
    ctx = execjs.compile(js_str)
    #这里hello为js文件里的函数,e为向hello这个函数里传递的参数
    #这里我们的e这个形参主要用来传递歌曲的id,这样我们只需要向该函数传递不同的歌曲Id,即可返回不同的下载链接
    return (ctx.call('hello',e))

url = "https://www.ciweimao.com/chapter/ajax_get_session_code"
data = {
    "chapter_id": "111446252"
}
s = requests.Session()
chapter_access_key = s.post(url, headers=headers, data=data).json()['chapter_access_key']
print(chapter_access_key)
url = "https://www.ciweimao.com/chapter/get_book_chapter_detail_info"
data = {
    "chapter_id": "111446252",
    "chapter_access_key": chapter_access_key
}
response = s.post(url, headers=headers, data=data).json()
chapter_content=response['chapter_content']
encryt_keys=response['encryt_keys']
rad=response['rad']
result = get_des_psswd({'chapter_content':chapter_content,'encryt_keys':encryt_keys,'chapter_access_key':chapter_access_key})
print(result)

 js源码

const CryptoJS = require('crypto-js')
//var e = {'chapter_content': '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', 'encryt_keys': ['PDOYKnpOe0Dd0DM2pkx7eadpv/7qILOhdxvTVm2u908=', 'onWP1kO+LTeL+VVaempUXh8XrZ7lLzTsVF4N0x0eWYs=', 'OufZ3PbLd4sDo+g9UI3AjQfM7YFSIWE6nXs9snizsqU=', '9lV9RLsx+M5fGcg3SePrgx/Ooq/F+rV2go4CJxmzohY=', 'e4gB4wgfZpQJwmw0jzPhJPlIPsbLm+giGeezhW4N91Q=', 'FvoPkTyfu20yKwzULMF3niodoMreRF9EA2z08+ZhqQI=', 'P9EiRg4/DEQqRZjXm3ZqjL0WlyxBbWf5sfNxvEXs734=', 'fDLrhb3w/HXbv1dI0I6n0yKtYEMnj1B0OKvVtLPAW6I=', 'GPV8du1pvPzTgUz3MV/g4G/glm62IUnEniL8+hmPwfs=', 'vMOL2koQWSjjfRv9ZS/KHRFGsldhnllInD1G0ku+yB8=', 'QBDcHR1/QMHQYTjkvIkHURXlCDcZeAxru90wDGhNnU4='], 'chapter_access_key': 'CZ05yWz3'}

function hello(e){	
var obj = {
                    content: e.chapter_content,
                    keys: e.encryt_keys,
                    accessKey: e.chapter_access_key
                }
 function decrypt(g) {
            var l = {
                content: "",
                keys: [],
                accessKey: ""
            };
            //var s = d.extend({}, l, g);
			var s = g;
            var n = s.content;
            var r = s.keys;
            var t = s.keys.length;
            var q = s.accessKey;
            var o = q.split("");
            var m = o.length;
            var k = new Array();
            k.push(r[(o[m - 1].charCodeAt(0)) % t]);
            k.push(r[(o[0].charCodeAt(0)) % t]);
            for (i = 0; i < k.length; i++) {
                n = atob(n);
                var p = k[i];
                var j = btoa(n.substr(0, 16));
                var f = btoa(n.substr(16));
                var h = CryptoJS.format.OpenSSL.parse(f);
                n = CryptoJS.AES.decrypt(h, CryptoJS.enc.Base64.parse(p), {
                    iv: CryptoJS.enc.Base64.parse(j),
                    format: CryptoJS.format.OpenSSL
                });
                if (i < k.length - 1) {
                    n = n.toString(CryptoJS.enc.Base64);
                    n = atob(n)
                }
            }
			
            return n.toString(CryptoJS.enc.Utf8)
			
        }
		
return decrypt(obj)			
}


6.js函数

         

      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值