ajax网页抓取java_网页抓取-如何抓取AJAX页面?

概述:

首先,所有屏幕抓取都需要手动查看要从中提取资源的页面。 在处理AJAX时,通常只需要分析一些内容,而不仅仅是HTML。

在处理AJAX时,这仅意味着您想要的值不在您请求的初始HTML文档中,而是将执行javascript,该javascript请求服务器提供您想要的其他信息。

因此,您通常可以简单地分析javascript并查看javascript发出的请求,而只需从头开始调用此URL。

例:

以这个为例,假设您要从中进行抓取的页面具有以下脚本:

function ajaxFunction()

{

var xmlHttp;

try

{

// Firefox, Opera 8.0+, Safari

xmlHttp=new XMLHttpRequest();

}

catch (e)

{

// Internet Explorer

try

{

xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");

}

catch (e)

{

try

{

xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");

}

catch (e)

{

alert("Your browser does not support AJAX!");

return false;

}

}

}

xmlHttp.onreadystatechange=function()

{

if(xmlHttp.readyState==4)

{

document.myForm.time.value=xmlHttp.responseText;

}

}

xmlHttp.open("GET","time.asp",true);

xmlHttp.send(null);

}

然后,您要做的只是改为对同一服务器的time.asp发出HTTP请求。 来自w3schools的示例。

使用C ++进行高级抓取:

对于复杂的用法,如果您使用的是C ++,则还可以考虑使用firefox javascript引擎SpiderMonkey在页面上执行javascript。

Java高级抓取:

对于复杂的用法,如果您使用的是Java,则还可以考虑将firefox javascript引擎用于Java Rhino

.NET的高级抓取:

对于复杂的用法,如果您使用的是.Net,则还可以考虑使用Microsoft.vsa程序集。 最近被ICodeCompiler / CodeDOM取代。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python爬虫是一种用于自动化获取网页数据的程序。它可以通过发送HTTP请求,解析HTML页面,并提取所需的信息。对于静态网页,爬虫可以直接通过请求获取页面的HTML代码,然后使用解析库(如BeautifulSoup)来提取所需的数据。但是对于动态网页,情况稍有不同。 动态网页是指在页面加载过程中,通过JavaScript等技术动态生成内容的网页。这些内容可能是通过Ajax请求获取的,或者是在页面加载完成后通过JavaScript代码生成的。因此,对于动态网页抓取,我们需要模拟浏览器行为来执行JavaScript代码,并获取最终生成的HTML内容。 在Python中,有一些库可以帮助我们实现动态网页抓取,其中比较常用的是Selenium和Pyppeteer。这两个库都可以模拟浏览器行为,并且支持执行JavaScript代码。你可以根据自己的需求选择其中一个进行使用。 使用Selenium进行动态网页抓取的基本步骤如下: 1. 安装Selenium库:使用pip命令安装selenium库。 2. 下载浏览器驱动:根据你使用的浏览器(如Chrome、Firefox等)下载对应的浏览器驱动,并将其添加到系统路径中。 3. 创建WebDriver对象:使用Selenium的WebDriver类创建一个浏览器对象,如ChromeDriver。 4. 打开网页:使用WebDriver对象的get方法打开目标网页。 5. 执行JavaScript代码:如果页面中有动态生成的内容,可以使用WebDriver对象的execute_script方法执行JavaScript代码。 6. 提取数据:使用Selenium提供的方法或者其他解析库(如BeautifulSoup)来提取所需的数据。 使用Pyppeteer进行动态网页抓取的基本步骤如下: 1. 安装Pyppeteer库:使用pip命令安装pyppeteer库。 2. 安装Chromium浏览器:Pyppeteer依赖于Chromium浏览器,需要先安装Chromium浏览器。 3. 创建Browser对象:使用Pyppeteer的launch方法创建一个浏览器对象。 4. 创建Page对象:使用Browser对象的newPage方法创建一个页面对象。 5. 打开网页:使用Page对象的goto方法打开目标网页。 6. 执行JavaScript代码:如果页面中有动态生成的内容,可以使用Page对象的evaluate方法执行JavaScript代码。 7. 提取数据:使用Pyppeteer提供的方法或其他解析库(如BeautifulSoup)来提取所需的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值