没有合适的资源?快使用搜索试试~ 我知道了~
《网络数据采集》第5章课件201911231
需积分: 0 0 下载量 175 浏览量
2022-08-03
22:46:00
上传
评论
收藏 1004KB PDF 举报
温馨提示
试读
39页
第五章 RIA网站数据爬取讲师姓名:授课时间:共32课时,第19-22课时1 课前引导与上节回顾前面介绍了爬取RIA网站的一些前置基础知识。下面,将介绍使用网络
资源详情
资源评论
资源推荐
网络
数
据
采
集
第
五
章
RIA
网
站
数
据
爬
取
讲师姓名:
授课时间:
共32课时,第19-22课时
1
课
前
引
导
与上
节
回
顾
前面介绍了爬取RIA网站的一些前置基础知识。下面,将介绍使用网络爬虫爬取RIA网站信息的具体方
法。
2
本
节
课
程
主
要
内
容
内容列表:
本节目标
RIA网站的技术构成
使用Selenium爬取RIA网站信息
本节总结
课后练习
2.1
本
节
目
标
掌握RIA型网站的技术构成,重点把握AJAX的技术特点;
掌握Selenium工具的使用方法,能够使用这一工具获取ajax驱动网页的页面信息。
2.2 RIA
网
站
的
技
术构
成
2.2.1
知
识讲
解
这一讲,我们介绍RIA网站数据爬取技术。
RIA是Rich Internet Applications的缩写,指富互联网应用程序。RIA是一种特殊的Web应用程序,其用
户界面比第一代和第二代Web应用程序具有更丰富的功能。它看起来和感觉更像桌面应用程序。
为了实现这些更高级的用户界面,RIA网站通常使用JavaScript、Flash、Google Web Toolkit、JavaFX
或Silverlight在浏览器中执行。
目
前
,
HTML5+JavaScript +CSS3+JavaScript Frameworks
是
构
建
RIA
前
端
的
主
流
技
术
。
常见的JavaScript框架有:
JQuery
AngularJS
D3
Sencha EXT-JS
SmartClient
Dart等。
例如:大家经常浏览的淘宝、京东、豆瓣等网站都应用了这一类技术。在我们的课程中,并不准备对这
些技术进行逐一讨论,而是仅考虑与网络爬取相关的一部分技术构成。
在爬取RIA网页时,最大的问题在于:RIA
在
加
载
数
据
时
往往
采
用
异
步
加
载
XML
或
JSON
实
现
数
据
更
新
,
而
页
面
的
URL
并
不
改
变
。
这使得
之
前
介
绍
的
网络
爬
虫
程
序
无
法
通过遍
历
URL
链
接
来
获
取
新数
据
,
我
们
需
要
与
以
往
不
同
的
方
法
来
应
对
这
一
变
化
。
接下来,我们将首先介绍AJAX原理,而后介绍爬取基于AJAX的RIA网页的方法。
AJAX,指异步JavaScript 和 XML,它是一种用于创建快速动态网页的技术。通过在后台与服务器进行
少量数据交换,AJAX 可以使网页实现异步更新。
这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。有很多使用 AJAX 的应用程
序案例:
新浪微博
Google 地图
京东
淘宝等
AJAX的工作原理如下图所示:
步骤解释如下:
1. 在浏览器端,当用户浏览一个RIA页面时,通过鼠标或键盘激发一个JavaScript事件;
2. 浏览器会生成一个XMLHttpRequest对象,然后将这个请求对象通过互联网送给服务器;
3. 在服务器端,服务器收到XMLHttpRequest对象后,会根据请求生成一个响应,并通过网络传递给
浏览器。
4. 浏览器收到服务器响应后,会使用Javascript处理反馈数据,然后更新页面内容。
我们可以讲 AJAX 与 非AJAX 进行区别:
Conventionel modell of a web application Ajax model of a web application
client platform
internet/intranet
server platform
HTTP(S) - traffic
HTTP(S) traffic
user interface
web browser
server-based system
database,
data handling,
legacy system etc.
web server
HTTP-request
HTML+
CSS data
web browser
user interface
"Ajax engine"
(javascript)
javascript
call
HTML+
CSS data
server-based system
database,
data handling,
legacy system etc.
web server and/or
XML server
HTTP-request
XML or HTML
or javascript data
我们可以在很多网页的源文件中看到如下图所示的类似代码(以w3cschool中的Ajax为例):
var xmlhttp;
if (window.XMLHttpRequest){
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
这就是在生成用于异步加载数据的XMLHttpRequest对象。在发送请求时,通常会使用下表所示的
OPEN方法和send方法。
下面的代码是发送XMLHttpRequest对象xmlhttp的例子:
xmlhttp.open("GET","test1.txt",true);
xmlhttp.send();
服务器响应内容,可以通过XMLHttpRequest 对象的 responseText 或 responseXML 属性获取,例如下
列代码是读取非XML类型响应的一个示例:
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
如果响应内容以XML格式返回,则需要使用responseXML属性。例如,要解析服务器返回的 books.xml
文件,可以使用下列代码:
xmlDoc=xmlhttp.responseXML;
txt="";
x=xmlDoc.getElementsByTagName("ARTIST");
for (i=0;i<x.length;i++)
{
txt=txt + x[i].childNodes[0].nodeValue + "<br />";
}
document.getElementById("myDiv").innerHTML=txt;
剩余38页未读,继续阅读
我就是月下
- 粉丝: 25
- 资源: 336
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0