现在越来越多的网站把数据的交互过程写在 JS 代码里,也就是说如果你只单单看前端网页的源码,你是无法得到具体的数据,你只能看到一大堆调用 JS 的前端代码。所以对于这类的网站,我们需要进入到具体的 JS 源码,理清关键代码,从而进行破解获取到我们想要的数据。5 E; P, _+ W7 E* F$ Y 1 JS 基础语法学习 . \8 d' M. o; \% }2 b 你只要有点编程基础,学习过一门编程语言,JS 的学习还是相对轻松,一个星期左右的时间就可以把 JS 所有的基础内容,全部学习一遍。如果你没有编程基础的话,JS 基础的内容学习起来也不是非常难,最多一个月的时间也能全部学完。/ f' V% u' @& T4 M
这里给大家推荐一个 JS 编程基础学习网站:0 l Z! d d# c6 B( M) V, }0 F https://www.runoob.com/js/js-tutorial.html $ ` ~, ^8 B' K$ h$ m ' w, x$ ^- O, k$ E
6 O' J5 C* g3 F5 x! M
$ |' S! G! ^1 z) j/ S2 前端 JS 破解原理 , j& H |7 C h5 ~/ i6 O) v) H 普通的网站数据的显示都是在网站的源码中就可看到,这类的网站你只要发个 requests 的请求,服务器就会把带有数据的源码返回给你,你就可以通过一些解析库进行解析了。但对于 JS 进行数据加密传输的网站,它就不同,比如下面这个网站:; R! v0 ]4 Y( I" s
/ ]0 o+ o5 v* a& h4 G. ^( S8 o
在控制面板可以看到获取到的数据是字母串,跟前端显示的数据完全不同,这就说明网站的数据是被加密了。新手在爬这类网站的时候,看到这里可能就会感到无奈。但大家不妨这样想,前端显示的数据是正常,所以后台一定会有某个地方对加密过的数据进行解密,而我们需要做的就是找到这个段解密的代码,按照它的逻辑进行传参就可以了。这也是我们破解 JS 代码的原理所在。4 }0 J3 A2 }8 y. V$ D/ l8 @
8 o, p& R$ n J3 o% b3 工具的使用% g d" Y1 t3 a& Z0 s5 P+ G+ B2 @
讲完了原理之后,我先给大家介绍几个常用的工具。3.1 谷歌浏览器的开发者工具1 N2 _/ h7 X8 M) R
学爬虫一定要会使用谷歌浏览器的开发者工具,按谷歌浏览器按 F12 就可以弹出具体的页面。 + ]/ M/ v7 ?: T" ]6 W3 }- y8 d
" C' V' q/ }3 X9 [( K0 y, U
在开发者页面中你可以看到网页的源码「Elementes」、控制台「Console」、网页源码「Sources」、网络请求面板「Network」等等。详细的教程可以去看下官方的文档: 8 R& i6 L4 q' Z0 m% X, Y5 T$ _' Chttps://developers.google.com/web/tools/chrome-devtools/?hl=zh-cn/ X8 B7 N1 G8 H- }" P2 e" G0 b