挥舞乾坤 发表于 2020-9-26 17:45:10

[小练习]当爬虫遇到521的时候

今天在写一个爬虫的时候遇到了一个情况,http返回的状态码是521,应该是一个安全公司的反爬技术,返回的response是一段js代码,用来设置cookies,只有设置了cookies的session才能正常访问,以前遇到的情况,都是一段混淆过的js代码,基本没办法反编译,都是通过python的第三方库来获取结果,今天好不容易遇到一个js代码还算清晰的,无聊的鱼友们没事拿来练练手,最好先自己写写,再来看我的代码。

目的是给一段js,得到想要的字符串
js1 = "<script>document.cookie=('_')+('_')+('j')+('s')+('l')+('_')+('c')+('l')+('e')+('a')+('r')+('a')+('n')+('c')+('e')+('_')+('s')+('=')+(-~{}+'')+((1+)/+'')+(~~[]+'')+((+true)+'')+(-~false+'')+(-~[]+'')+(~~{}+'')+(3+5+'')+(8+'')+((+false)+'')+('.')+(*(3)+'')+(3+'')+(2+2+'')+('|')+('-')+(-~false+'')+('|')+('W')+('h')+('h')+('u')+('Z')+('h')+('l')+('%')+(2+'')+('F')+('%')+(+!+[]*2+'')+('F')+('y')+('%')+((1<<1)+'')+('B')+(~~[]+'')+('D')+('r')+('c')+('U')+('V')+(9-1*2+'')+('P')+('I')+(4+5+'')+('a')+('J')+('E')+('t')+('R')+('c')+('%')+((1+>>2)+'')+('D')+(';')+('m')+('a')+('x')+('-')+('a')+('g')+('e')+('=')+(3+'')+(3+3+'')+(~~''+'')+(~~[]+'')+(';')+('p')+('a')+('t')+('h')+('=')+('/');location.href=location.pathname+location.search</script>"
js2 = "<script>document.cookie=('_')+('_')+('j')+('s')+('l')+('_')+('c')+('l')+('e')+('a')+('r')+('a')+('n')+('c')+('e')+('=')+(-~{}+'')+((1+)/+'')+(~~[]+'')+((+true)+'')+(-~false+'')+(-~[]+'')+(~~{}+'')+(3+6+'')+(4+'')+((1<<2)+'')+('.')+(1+4+'')+(7+'')+(2+5+'')+('|')+('-')+(-~false+'')+('|')+('I')+(2+'')+('k')+('R')+((1+)/+'')+('X')+('h')+(2+5+'')+('N')+('q')+('D')+('S')+('P')+('G')+('B')+('a')+('u')+('G')+('c')+('H')+('H')+(-~+'')+('j')+('F')+(+!+[]*2+'')+('u')+(4+4+'')+('%')+((1+>>2)+'')+('D')+(';')+('m')+('a')+('x')+('-')+('a')+('g')+('e')+('=')+(3+'')+(';')+('p')+('a')+('t')+('h')+('=')+('/');location.href=location.pathname+location.search</script>"
js3 = "<script>document.cookie=('_')+('_')+('j')+('s')+('l')+('_')+('c')+('l')+('e')+('a')+('r')+('a')+('n')+('c')+('e')+('=')+(-~{}+'')+((1+)/+'')+(~~[]+'')+((+true)+'')+(-~false+'')+(-~[]+'')+(-~false+'')+(~~false+'')+((+[])+'')+((1+)/+'')+('.')+(2+7+'')+(8+'')+('|')+('-')+(-~false+'')+('|')+('v')+('x')+('x')+('c')+('F')+('s')+('l')+('U')+(1+2+'')+(-~+'')+('S')+(+!+[]+'')+('Y')+(~~false+'')+(-~+'')+((1<<2)+'')+('T')+('K')+('b')+(4+5+'')+('%')+(+!+[]*2+'')+('F')+(9+'')+('W')+(~~''+'')+((1+)/+'')+('I')+('g')+('%')+(-~+'')+('D')+(';')+('m')+('a')+('x')+('-')+('a')+('g')+('e')+('=')+((1|2)+'')+(';')+('p')+('a')+('t')+('h')+('=')+('/');location.href=location.pathname+location.search</script>"
js_list =

def js_to_str(js):


if __name__ == '__main__':
    for e in js_list:
      print(js_to_str(e))

得到的结果应该是:
__jsl_clearance_s=1601110880.634|-1|WhhuZhl%2F%2Fy%2B0DrcUV7PI9aJEtRc%3D;max-age=3600;path=/
__jsl_clearance=1601110944.577|-1|I2kR6Xh7NqDSPGBauGcHH6jF2u8%3D;max-age=3;path=/
__jsl_clearance=1601111006.98|-1|vxxcFslU36S1Y034TKb9%2F9W05Ig%3D;max-age=3;path=/

有兴趣的可以研究一下,最佳就给代码清晰简单的,我的代码在下面
**** Hidden Message *****

bonst 发表于 2020-9-28 17:06:22

我来康康一下

majian890324 发表于 2020-9-29 00:35:57

看看

sbx 发表于 2020-9-29 07:12:05

我来看看!

jitianmoshen 发表于 2020-9-29 11:38:10

让 江小白 来看看帖子里藏了啥好东西~~~

树静501 发表于 2020-9-29 12:35:50

不懂。。。。。。

刘宗睿 发表于 2020-9-29 19:16:35

看看

Albertdjy 发表于 2020-9-29 20:55:52

看看

Hant 发表于 2020-9-29 21:34:15

666

happy含笑 发表于 2020-9-30 06:59:17

小陨aoq 发表于 2020-9-30 20:02:05

看看答案

HDM3193 发表于 2020-9-30 20:58:03

A

不完美小孩 发表于 2020-9-30 21:00:03

1

fatalman 发表于 2020-10-5 19:23:43

看看

xiangjianshinan 发表于 2020-10-6 23:46:20

给网址先呗。

happy含笑 发表于 2020-10-7 18:07:06

差生中的差生 发表于 2020-10-18 22:57:29

看不懂

Koufer 发表于 2020-10-19 11:26:23

看看

大地郡主 发表于 2020-10-19 15:11:44

康康~

资治通鉴 发表于 2020-10-20 12:33:09

1
页: [1] 2 3
查看完整版本: [小练习]当爬虫遇到521的时候