Python爬虫破解中国人民银行(www.pbc.gov.cn)新闻获取反爬

目的

通过获取http://www.pbc.gov.cn/goutongjiaoliu/113456/113469/index.html
这个新闻页上的列表,并且访问其详情页

image.png

开干

先用console获取一下新闻列表url的内容,如下图所示:


image.png

很明显,根据爬虫经验,这种反爬类似于一种叫做”加速乐”的反爬机制,在红圈1处进行一些js运行的参数混淆加载,然后红圈2中进行主要的反爬逻辑,”加速乐”通常会通过js加密一串字符,然后在Cookie中需要带有该参数才能通过访问,而这里通过后面分析可以知道,这个网站是需要生成一个动态URL来让对方服务器校验。这里先进行的是解决eval函数里面的js参数解析
分析过程如下:
1.先拷贝代码到chrome里面运行一下看能生成一个什么结果


image.png

这里可以看到根据上面的eval执行的代码实际上会生成如上图的js变量并应用,那么我就可以通过python进行模拟
image.png

上图红圈位置实际上是模拟了JS里面的Number.toString方法。
通过分析JS的源代码可以从里面扣出逻辑并生成python代码

2.运行上边模拟的JS代码Debug到下图位置


image.png

图中real_var前面的逻辑实际上是从源网站里面提取到eval里面的代码,并且通过正则与逻辑从字符串中提取到我写的packet函数所需要的参数,并且返回的real_var正是与chrome里面生成的一模一样(类似)

3.再解决JS加密的模块,通过第一个步骤得到的红圈2里面的就是主要的JS加密处,通常我对于这种的混淆分析都会通过Vscode+nodeJS去模拟一个js运行的浏览器环境然后单步调试


image.png

红圈里面的就是我通过python运行后得到的变量,并且因为浏览器执行js代码的时候一般带有一些用到的全局对象例如window之类的,那么我这里设置一个空的
找到程序执行的入口


image.png

进入其代码看逻辑,实际上有用的部分就是下图这里
image.png

通过单步运行可以知道这三个值实际上目的是拼接一个下图这里的URL,也就是我开篇说说的动态URL


image.png

那么只要模拟到上面的3个参数就可以破解了
4.破解流程
image.png

image.png

这里通过运行可以知道函数是被映射到上边箭头所指向的地方,那么进去分析
image.png

这个函数的逻辑抠出来并用python实现就是我这一段代码
image.png

得到一段WZWS_CONFIRM_PREFIX_LABEL加上后缀参数的结果

然后运行第二个函数如下调用流程


image.png

image.png
image.png

到了这里,就是我python代码里面的_0x412a72函数的逻辑了
抠取里面的逻辑并且用python实现位置如下(红圈)


image.png

这里的变量复杂所以我在python里面也没改变量名了,直接用并且调试
如下图,这里的逻辑很明显就是传入的71652034就是下面switch逻辑运行的顺序

image.png

执行我写的逻辑得到如下结果


image.png

对比源js代码


image.png

最后一个函数实际上就是用一开始的dynamicurl与参数1,2还有下图字符进行拼接成动态url
image.png

最后python运行得到下面红线结果,完成破解
image.png

说明:实际上最快的解决方案可以是用python的executeJS库+本地nodejs环境来运行js源码,但是会存在调起nodejs运行环境的损耗以及容易发生一些难以控制的错误

本解决方案的所有代码都是使用python的环境进行编码并运行,是效率最高的方法,而在运行过程中也存在调用动态url失败的方法,通过获取到失败的一次js代码并且放到chrome中运行也是显示失败的,也证明对方服务器也存在一些错误
如下:

image.png

绿色圈中的key与value也调转了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容