爬虫工程师的头号大敌历来都不是 WEB 开发工程师,也不是移动端开发工程师,而是本身。对,是咱们本身太菜了!爬虫是综合技术的应用,是我的知识面的体现。入行半年光景,咱们便可以感觉到反爬虫手段和技术负责人带来的压迫感,天天都在加班和被催促中度过。
python
咱们攫取知识的渠道实在是太少了!除了几个大型技术媒体平台翻阅文章以外,只能在技术交流群里向“大佬”们请教。小编韦世东是近两年才自学转行到爬虫领域的,深深地理解你们的处境和难处,在学习和成长的路途中,获得过不少“大佬”的帮助,在学成后也但愿可以帮助到和本身同样深陷技术泥潭的工程师们走出困境。web
——这就是《JavaScript 逆向系列课》的产生背景。浏览器
先来看爬虫工程师遇到的困境,假设你想要模拟浏览器向服务端发送一次 POST 请求,你如今得经过浏览器开发者工具观察请求信息,当你按 F12 唤起开发者工具时,你会发现老是被自动断点到一串代码处:微信

这使得你没法观察网络请求和分析代码,后面的工做也没法开展。网络
——这就是事件监听之无限 debugger。ide
费了九牛二虎之力解决了无限 debugger 问题后,你终于看到了网络请求信息,浏览器的请求信息以下:工具
Request URL: http://fanyi.nightteam.cn/Request Method: POSTclient: fanyideskwebsalt: 15793079804866sign: 7e65ff7fe83383046b94e90ab5d49f2ets: 1579307980486bv: 9eaf64dcb9196c4d663dc6a774403fc6
很明显,sign 和 bv 这两个头域的值是加密过的,如今你必须找到这两个头域对应的值的计算方法。学习
——这就是参数加密flex
一般状况下,咱们会使用全局搜索 Ctrl + Shift + F 直接搜寻 sign 或 bv 关键字。很糟糕,不管咱们怎么搜索都搜不到!你根本不知道 sign 和 bv 值的计算方法写在哪里网站
——这就是入口难找
因而你施展断点和 hook 之法,费尽千辛万苦找到了计算 sign 和 bv 的 JS 文件,点进去以后就有点懵逼了:
var __encode ='nighttean.cn', _0xb483=["\x5F\x64\x65\x63\x6F\x64\x65","\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x73\x6F\x6A\x73\x6F\x6E\x2E\x63\x6F\x6D\x2F\x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74\x6F\x62\x66\x75\x73\x63\x61\x74\x6F\x72\x2E\x68\x74\x6D\x6C"];(function(_0xd642x1){_0xd642x1[_0xb483[0]]= _0xb483[1]})(window);var _0x5bcb=["\x69\x6E\x66\x6F","\u8FD9\u662F\u4E00\u4E2A\u9AD8\u7EA7\u52A0\u5BC6\u7684\u65B9\u5F0F\uFF0C\u52A0\u5BC6\u540E\u4E0D\u80FD\u6062\u590D\uFF0C\u8BF7\u4FDD\u5B58\u597D\u6E90\u7801\u3002","\x61\x64\x69\x6E\x66\x6F","\u7AD9\u957F\u63A5\u624B\u52A8\u52A0\u5BC6\uFF0C\u4FDD\u536B\u4F60\u7684\x20\x6A\x73\u3002"];(function(_0xe17ex1,_0xe17ex2){_0xe17ex1[_0x5bcb[0x0]]= _0x5bcb[0x1];_0xe17ex2[_0x5bcb[0x2]]= _0x5bcb[0x3]})(window,document)
你能看出上面这段 JavaScript 代码的逻辑和具体含义吗?这显然是网站作了多层防护方法!经过 Unicode 编码、十六进制表示、语义复杂化等方式将本来漂亮整齐的代码变成上面的样子。真的是爷爷来了都认不出来!
——这就是代码混淆。
若是你遇到过或者即将要遇到与上面相似的问题,那么《JavaScript 逆向系列课》很适合你。咱们来看看,你将从这门课中收获哪些知识:
序号 | 内容 | 重要程度 |
1 | 深刻理解 JavaScript 反爬虫的根本缘由 | A+ |
2 | 了解工做中经常使用的 JavaScript 语法和知识 | B |
3 | 掌握各类逆向神器的基本使用和骚操做 | A |
4 | 深刻理解 JavaScript 代码混淆的原理 | A+ |
5 | 掌握 JavaScript 中常见的编码和加密方法 | A |
6 | 拥有快速定位加密代码位置的能力 | A |
7 | 轻松面对各类各样的加密字符串 | A |
本课程将从原理和技巧两个角度来为你们讲解 JavaScript 反爬虫绕过的相关知识。课程从反爬虫原理、工具介绍和使用、JavaScript 基础语法入手,结合常见的反爬虫现象及其绕过实战操做,帮助你掌握中级爬虫工程师必备的 JavaScript 逆向知识,向更高的职级迈进!
课程大纲以下:
序号 | 标签 | 课程标题 |
1 | 追根究底 | 探寻 JavaScript 反爬虫的根本缘由 |
2 | 浮沙之上 | 课程中用到的 JavaScript 语法和知识 |
3 | 奇门遁甲 | 使用 Python 执行 JavaScript |
4 | 蓄势待发 | 浏览器开发者工具的介绍和使用技巧 |
5 | 磨刀霍霍 | 抓包和拦截工具的介绍和使用技巧 |
6 | 初窥门径 | 阻挠爬虫工程师的无限 debug |
7 | 火眼金睛 | 定位加密参数对应代码位置的方法 |
8 | 拨开云雾 | 代码混淆的原理 |
9 | 一击即中 | 处理代码混淆的方法 |
10 | 知己知彼 | 掌握常见的编码和加密 |
11 | 长枪直入 | 轻松解决反人类的混淆代码 |
12 | 一叶障目 | 服务端返回的神秘字符串 |
13 | 螳臂当车 | 解密!AES 并非每次都奏效 |
14 | 插翅难逃 | 纵然 CSS 加身也难逃命运的安排 |
15 | 真假猴王 | Base64 竟有如此威力 |
16 | 过眼云烟 | 历练半生 归来还是少年 |
课程面向入门级~中级爬虫工程师,就算你是一个 JavaScript 小白也能看得懂。
课程内容制做团队堪称豪华,团队由业内知名的工程师组成,成员分别是:崔庆才、韦世东、陈祥安、张冶青、唐轶飞、蔡晋、冯威、戴煌金、周子淇、文安哲。若是你对他们的名字感到陌生,那看到头像就懂了:

•2018~2019 年火爆全网的《Python3 网络爬虫开发实战》,做者崔庆才;•2020 年京东热卖榜(IT 读物)第1、当当新书榜(IT 读物)第一的《Python3 反爬虫原理与绕过实战》,做者韦世东;•2019 年疯狂收获 4k Star 数的开源项目 Crawlab 做者 MarvinZ;•那个站在 JavaScript 逆向食物链顶端的男人 sml2h3;•连续高频发文,带领你们领略逆向风光的花儿谢了、蔡老板和咸鱼哥;•4G 商业代理文章首发做者,同时也是在爬虫职业深陷舆论时首个站出来发声《请不要污名化爬虫》的做者 Loco;•过低调了,低调到我都不知道怎么描述他的企鹅工程师大鱼,反正韦世东的成长路上少不了他;
课程早在 10 月份就开启了预售,预售完成以后团队才肯定要录制这门课程的。在没有任何外部广告的做用下,夜幕团队赢得了 750 名工程师的信任,你们早早就交钱等课。

预售群一群成员截图
夜幕团队感谢你们的信任!
通过几个月的素材制做、视频录制、交叉验证、补录、字幕制做和剪辑,《JavaScript 逆向系列课》终于要跟你们见面了,课程正式开售日期为 2020.1.20 日。
新课开售|限时优惠
未能参与预售活动的朋友能够参与此次的新课开售活动,有 50 元优惠哦!优惠活动持续到 2020.1.31号,过时不候。

本文分享自微信公众号 - Python学习开发(python3-5)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。