抓取ajax动态网页java( 抓取结果如下:静态分析对动态分析的缺点及解决办法)
优采云 发布时间: 2021-12-20 21:22抓取ajax动态网页java(
抓取结果如下:静态分析对动态分析的缺点及解决办法)
<p style="text-align:center">
0x01 简介
随着Web 2.0的发展,页面中的AJAX也越来越多。由于传统爬虫依靠静态分析,不能准确的抓取到页面中的AJAX请求以及动态更新的内容,已经越来越不能满足需求。基于动态解析的Web 2.0爬虫应运而生,通过浏览器内核解析页面源码,模拟用户操作,能有效解决上述问题。本文将详细分析利用PhantomJS + Python 编写爬虫并进行去重的思路。
0x02 PhantomJS
PhantomJS 是无界面的 Webkit 解析器,提供了 JavaScript API 。由于去除了可视化界面,速度比一般 Webkit 浏览器要快很多。同时提供了很多监控和事件接口,可以方便的操作 DOM 节点,模拟用户操作等。
接下来我们通过一个简单的例子,来展示下动态爬虫和传统爬虫的区别。目标:加载一个页面,并且获取其中所有的 <a> 标签。 // example.js var page = require('webpage').create(); page.onAlert = function (message) { console.log(message); return true; }; page.onCallback = function() { page.evaluate(function(){ atags = document.getElementsByTagName("a"); for(var i=0;i