JavaScript的使用

  1. 在< script >< /script >中直接编写
  2. 通过< script src=‘目标文档的URL’ >< script >连接外部Js文件
  3. herf属性值
    作为某个元素的实践属性值或者是超链接的herf属性值

JavaScript基本语法

  • 执行顺序:按照HTML文件中出现的顺序一次执行
  • 严格区别大小写
  • 忽略空白符和换行符
  • 语句分隔符:使用;结束语句,可以将多个语句写在一行,最后一个语句的分号可以省略(尽量不要省略)。可以使用{}括成一个与剧组,形成一个block。
  • 通过\对代码进行折行操作:document.write(‘hello\world’);
  • //单行注释;多行注释/注释内容/
  • JavaScript中的保留字:abstract,else,instanceof,super,boolean,enum,int,switch,break,export,interface,synchronized,byte,extends,let,this,case,false,long,throw,catch,final,native,throws,char,finally,new,transient,class,float,null,true,const,for,package,try,continue,function,private,typeof,debugger,goto,protected,var,defaut,if,public,void,delete,inplements,return,volatile,do,import,short,while,doble,in,static,width
  • 通过document.write()向文档书写内容
  • 通过console.log()向控制台写入内容
  • 语法错误:通过控制台进行调试
  • 逻辑错误:通过alert()进行调试

RMK:除变量类型和命名规范等,JavaScript与Java关系不大。

  • 为在网页中使用JavaScript,开发者一般会将JavaScript脚本程序写在HTML的< script >标签中。在HTML中,< script >标签用于定义客户端脚本,如引用外部脚本文件,可在src属性中设置其地址。
  • JavaScript在语法结构上类似C++等面对对象的语言,循环语句、条件语句等与Python中的写法有较大的差异,但其弱类型特点会更符合Python开发者的使用习惯。
  • Chrome开发者模式下的“Console”(控制台)工具,可输入并执行JavaScript脚本程序,也可看到Console对应的输出。
除对JavaScript语法的了解,为更好地分析抓取网页,还需要对JavaScript第三方库(如jQuery、Prototype、React等提供函数和涉及完善的使用方法)
  • CDN(Content Delivery Network内容分发网络):存放供人们共享使用的代码。Google的API服务器提供存放jQuery等JavaScript库的CDN。但其用途不止“支持JavaScript脚本”。
  • 若网页使用CDN,当用户向网站服务器请求文件时,CDN会从离用户最近的服务器上返回相应(i.e.不必在本地保存.js文件),可以提高加载速度。

AJAX

  • 网页使用JavaScript加载页面中数据的过程,可看作AJAX技术。允许浏览器通过异步请求来获取数据,从而使得一个页面能够呈现并容纳更多内容,也意味着更多功能。
  • 使用主流浏览器,同时允许执行JavaScript,则可以使用网页中的AJAX内容

爬虫一般不能执行包括“加载新内容”或者“跳到下一页”等功能在内的各类写在网页中的JavaScript代码。

  • 爬虫可获取网站的原始HTML页面,但不会为网页运行JavaScript
  • 改进:
  1. 通过分析AJAX内容(手动观察和实验),观察其请求目标、请求内容和请求的参数等信息,最终编写程序来模拟这样的JavaScript请求,从而获取信息(这个过程也叫做“逆向工程”);
  2. 直接模拟出浏览器环境,使得程序得以通过浏览器模拟工具“移花接木”,最终通过浏览器渲染后的页面来获得信息。
  • 上述两种方法的选择与JavaScript在网页中的具体使用方法有关