动态网页爬取

动态网页使用JavaScript时,很多内容不会显示在HTML源代码中,传统网页更新内容必须重载整个网页。Ajax加载的动态网页常用爬取技术为,通过浏览器审查元素解析真实网页地址和使用selenium模拟浏览器。

一、Ajax

Ajax指异步的JavaScript和xml,利用JavaScript保证页面不被刷新、页面链接不改变的情况下与服务器交换数据并更新部分网页的技术。

Ajax示例 W3School TIY Editor

1. 基本原理

发送请求:新建了XMLHttpRequest对象,调用onreadystatechange属性设置监听,调用open
()和send()向服务器发送请求。

解析内容:得到响应后触发onreadystatechange对应的方法,利用XMLHttpRequest的responseText获得响应内容,再使用JavaScript进一步处理返回的HTML或Json。

渲染网页:调用JavaScript更改(更新删除等)某个元素内的源代码,称为DOM操作。

2. Ajax分析

(1)查看请求

Ajax的特殊请求类型为xhr。

打开网页开发者工具,网络,刷新页面,找到一个Ajax请求。

查看Headers。 

Preview中是响应内容。

Response中是真实的返回数据。

(2)过滤请求

3. Ajax结果提取

(1)分析请求

请求的参数为url。

(2)分析响应

4. 解析真实地址

检查->网络,刷新页面进行抓包。数据一般以JSON格式获取,找到真实地址。根据真实地址发送请求获取数据。

二、selenium爬取动态网页

selenium用于web应用程序测试,模拟浏览器完成爬取,可做出单击、输入、打开、验证等操作。

selenium打开后显示一个带小机器人图标的浏览器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值