学科分类
目录
网络爬虫

动态网页介绍

本章所指的动态网页是指在网页中依赖JavaScript脚本动态加载数据的网页。与传统单页面表单事件不同,使用了JavaScript脚本的网页能够在URL不变的情况下改变网页的内容。动态网页上使用的技术主要包括以下几种:

1. JavaScript

JavaScript 是网络上最常用的、支持者最多的客户端脚本语言,它可以收集 用户的跟踪数据,不需要重载页面直接提交表单,在页面嵌入多媒体文件,甚至运行网页游戏。

我们可以在网页源代码的< scripy>标签里看到,比如:

<script type="text/javascript"
src="https://statics.huxiu.com/w/mini/static_2015/js/sea.js?v=201601150944"></script>

2. jQuery

jQuery 是一个十分常见的优秀的JavaScript库,也是一个快速、简洁的JavaScript框架,它封装了JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理等。

70% 最流行的网站(约200万)和约30%的其他网站(约2亿)都在使用jQuery。一个网站使用 jQuery 的特征,就是源代码里包含了jQuery入口,比如:

<script type="text/javascript"
src="https://statics.huxiu.com/w/mini/static_2015/js/jquery-1.11.1.min.js?v=201512181512"></script>

如果你在一个网站上看到了 jQuery,那么采集这个网站数据的时候要格外小心。JQuery 可以动态地创建 HTML 内容,只有在JavaScript代码执行之后才会显示,如果你用传统的方法采集页面内容,就只能获得JavaScript代码执行之前页面上的内容。

3. AJAX

我们与网站服务器通信的唯一方式,就是发出 HTTP 请求获取新页面。如果提交表单之后,或者从服务器获取信息之后,网站的页面不需要重新刷新,那么当前访问的网站就在用AJAX 技术。

AJAX其实并不是一门语言,而是用来完成网络任务(可以认为它与网络数据采集差不多)的一系列技术。AJAX全称是Asynchronous JavaScript and XML(异步 JavaScript 和 XML),网站不需要使用单独的页面请求就可以和网络服务器进行交互 (收发信息)。

4. DHTML

与AJAX一样,动态HTML(Dynamic HTML,DHTML)也是一系列用于解决网络问题的技术集合。DHTML是用客户端语言改变页面的HTML元素(HTML、CSS,或者二者皆被改变),比如页面上的按钮只有当用户移动鼠标之后才出现,背景色可能每次点击都会改变,或者用一个AJAX请求触发页面加载一段新内容,网页是否属于DHTML,关键要看有没有用JavaScript控制HTML和CSS元素。

那些使用了AJAX或DHTML技术改变或加载内容的页面,可能有一些采集手段。但是用Python解决这个问题只有两种途径:

(1)直接从JavaScript代码里采集内容(费时费力)。

(2)用Python的第三方库运行JavaScript,直接采集在浏览器里看到的页面(比较符合)。

点击此处
隐藏目录