前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >不会js逆向,你是找不到爬虫工作的!

不会js逆向,你是找不到爬虫工作的!

作者头像
龙哥
发布2019-07-17 14:34:27
1.6K0
发布2019-07-17 14:34:27
举报
文章被收录于专栏:Python绿色通道

最后通知一下: 各位老铁请点击阅读原文,填写送书资料,今天下午1点,确定送书名额,下午发快递,除偏远地方外三天内书就到你的手上了!

随着各个公司对自家数据信息的重视,他们对自己网站的反爬也是做得越来越全面了,一年前很多网站都能轻松爬到数据,但一年后很多网站都已经不能轻松拿到数据了,很多网站都会有js逆向反爬。如今想找一份爬虫的工作,或者你想爬一些知名网站,都会加上js逆向反爬,所以js逆向反爬也就成了必须掌握的技能!

好了,开始练手掌握这种技能,需求在这:

想想有点激动:

分析请求

用浏览器抓一波登陆包:

可以看到有 _abr_beibeitoken 两个加密参数。

我们再找找发现beibeitoken是上一个请求返回的:

好像难度一下减少了一半。

定位加密位置

还是老套路,搜就完事了:

通过关键字就找到一个相关文件,先进去看看。

先打上断点,重新登录一下,成功进入断点说明位置十有八九是找到了,F11进去看看里面的加密逻辑是什么样的。

看上去逻辑还蛮简单的,就是先这样再那样然后拼接在一起返回回来,完事儿~

分析加密

我们一个个跟进去研究下:

u,d,a,e,s这几个加密都可以通过上图的方法追踪到对应的加密。

这里我们主要研究fm的加密逻辑。

先看看f的加密逻辑:

代码语言:javascript
复制
1var f = d.length ? (0,l["default"])(d.join("&")) : ""

这里跟进去看看l["default"]是什么:

这里的e是初始化加密算法,我们再跟进去看看:

看到这里我已经不怎么想扣代码了,这么多乱七八糟的什么东西,要是真抠出来估计头发要掉一半。

而且这个代码看着也不像自写的算法,估计也是套的通用的那几种算法,所以我开始翻之前扣过的代码,果然让我找到了:

上面的代码是不是长得有点像,为了验证这个想法我把js里关于加密的代码扣下来look look

不得不说好的编辑器可以让你事半功倍,看到图中划线的地方这个参数的加密方法就一目了然了。

我们可以直接把它改成Python实现:

代码语言:javascript
复制
from hashlib import md5
def md5value(s):
    a = md5(s.encode()).hexdigest()
return a

接下来继续分析m的加密方法:

代码语言:javascript
复制
1m = (0,c["default"])(g, "ytU7vwqIx2UXQNsi");

有了上面的铺垫,我们继续追进去分析一波:

接下里就是编辑器表演的时候了

好了,到这里就破案了,接下来你可以用Python实现也可以直接使用Node的CryptoJS加密实现。

【完】

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python绿色通道 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 分析请求
  • 定位加密位置
  • 分析加密
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档