大师网-带你快速走向大师之路 解决你在学习过程中的疑惑,带你快速进入大师之门。节省时间,提升效率

动态网页爬取selenium+photomjs

动态网站的抓取静态网站困难一些,主要涉及ajax和html,传统的web应用,我们提交一个表单给服务器接受请求返回一个页面给浏览器,这样每次用户的交互都需要向服务器发送请求。同时对整个网页进行刷新,这样会浪费网络宽带影响用户体验。

怎么解决?{l55l59o6o9o}大数据挖掘小能手

Ajax--异步JavaScript和xml。是JavaScript异步加载技术、xml及dom还有xhtml和css等技术的组合。他不必刷新整个页面只需要页面的局部进行更新。Ajax只取回一些必要数据,使用soap、xml或者支持json的web service接口。这样提高服务器的响应减少了数据交互提高了访问速度。

Dhtml动态html,他只是html、css、和客户的的一宗集合,一个页面有html、css、JavaScript制作事事变换页面的元素效果的网页设计。

如何分辨?

最简单的就是看有没有“查看更多”字样,也可以使用response访问网页返回的response内容和浏览器的内容不一致时就是使用了动态技术。这样我们也无法提取有效数据

如何提取?

1直接在JavaScript中采集的数据分析

2使用采集器中加载好的数据

为什么使用Phantomjs?

Ajax请求太多并加密,手动分析每个ajax请求无疑愚公移山,phantomjs直接提取浏览器渲染好的结果不进行ajax请求分析,其实phantomjs就是基于webkit 的服务端JavaScript api。支持web而无需浏览器支持运行快,支持各种web标准:dom、css、json、canvas、svg。常用于页面自动化、网络监测、网页截屏、无界面测试。

安装?15515906090大数据挖掘小能手

下载http://phantomjs.org/download.html解压设置环境变量phantomjs -v测试安装

使用

页面加载:分析创建网页对象的呈现

代码:使用webpage模块创建一个page对象,通过page对象打开url网址,如果状态为success通过render方法将页面保存。

代码评估:利用evaluate执行沙盒它执行网页外的JavaScript代码,evaluate返回一个对象然后返回值仅限对象不包含函数

屏幕捕获:

网络监控:

页面自动化:

常用模块和方法?

Phantom,webpage,system,fs

图形化?

Selenium将Python和phantomjs紧密结合实现爬虫开发。Selenium是自动化测试工具,支持各种浏览器,就是浏览器驱动可以对浏览器进行控制。并且支持多种开发语言phantomjs负责解析JavaScript,selenium负责驱动浏览器和Python对接。

安装

pip install selenium===3.0.1 或者 https://pypi.python.org/pypi/selenium#downloads 下载源码解压python setup.py install selenium3然后下载https://github.com/SeleniumHQ/selenium/浏览器补丁解压到指定目录, 将geckodriver所在目录配置到环境变量。


图片发自简书App