实战Python网络爬虫
上QQ阅读APP看书,第一时间看更新

2.5 JavaScript

JavaScript是一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML网页上使用的,用来给HTML网页增加动态功能。

JavaScript脚本语言同其他语言一样,有自身的基本数据类型、表达式和算术运算符及程序的基本框架。JavaScript提供了4种基本的数据类型和两种特殊的数据类型用来处理数据和文字。而变量提供存放信息的地方,表达式则可以完成较复杂的信息处理。

有时候分析网站需要理解某些JavaScript的功能,如某些特殊的数据会存放在JavaScript中。以12306全国站点为例,如图2-2所示。

图2-2 12306站点信息

从图2-2中可以看到,不同的站点有对应的英文字母,代表站点的编码信息,JavaScript存储数据主要使用变量的形式。

JavaScript还能根据用户触发某些事件对用户的操作进行加工处理。例如用户登录信息设置加密处理,原理是先对用户提交的信息做加密处理,然后发送请求到服务器,这一系列事件由JavaScript独立完成。要用爬虫实现该功能,就要分析JavaScript如何执行整个用户登录过程。

下面通过分析一个简单的例子,来进一步了解JavaScript事件的触发原理:

JavaScript事件的触发过程:

(1)HTML根据〈form〉〈/form〉标签相应地生成一个表单。

(2)当用户在表单输入内容后,单击提交按钮,就会触发〈form〉〈/form〉表单里所指向的validateForm()方法,执行相应的JavaScript代码。

(3)validateForm()会判断输入的值是否为空。如果输入的值为空,就提示输入名字;若输入的值不为空,则提示“提交成功”。