gpt4 book ai didi

ajax - 如何抓取 AJAX 页面?

转载 作者:行者123 更新时间:2023-12-03 06:00:00 25 4
gpt4 key购买 nike

请告知如何抓取 AJAX 页面。

最佳答案

概述:

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

在处理 AJAX 时,这仅意味着您想要的值不在您请求的初始 HTML 文档中,但将执行 javascript,向服务器询问您想要的额外信息。

因此,您通常可以简单地分析 javascript 并查看 javascript 发出的请求,然后从一开始就调用此 URL。

<小时/>

示例:

以此为例,假设您要抓取的页面具有以下脚本:

<script type="text/javascript">
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);
}
</script>

那么您需要做的就是向同一服务器的 time.asp 发出 HTTP 请求。 Example from w3schools .

<小时/>

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

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

使用 Java 进行高级抓取:

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

使用 .NET 进行高级抓取:

对于复杂的用法,如果您使用 .Net,您还可以考虑使用 Microsoft.vsa 程序集。最近替换为 ICodeCompiler/CodeDOM。

关于ajax - 如何抓取 AJAX 页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/260540/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com