当前位置: 首页 > 面试题库 >

您如何抓取AJAX页面?

袁高明
2023-03-14
问题内容

请告知如何抓取AJAX页面。


问题答案:

概述:

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

在处理AJAX时,这仅意味着您想要的值不在您请求的初始HTML文档中,而是将执行javascript,该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请求。
来自w3schools的示例。

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

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

Java高级抓取:

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

.NET的高级抓取:

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



 类似资料:
  • 我是python新手,正在尝试从以下站点获取数据。虽然这段代码适用于不同的站点,但我无法让它适用于nextgen stats。有人想知道为什么吗?下面是我的代码和我得到的错误 下面是我得到的错误 df11=pd。读取html(urlwk1)回溯(上次调用):文件“”,第1行,在文件“C:\Users\USERX\AppData\Local\Packages\PythonSoftwareFounda

  • 问题内容: [我想做的事] 刮擦下面的网页以获取二手车数据。 http://www.goo- net.com/php/search/summary.php?price_range=&pref_c=08,09,10,11,12,13,14&easysearch_flg=1 [问题] 刮整个页面。在上面的网址中,仅显示前30个项目。我可以在下面编写的代码中删除这些内容。指向其他页面的链接显示为1 2

  • 问题内容: 我已经通过Scrapy文档今天一直在进行,并试图获得一个工作版本- https://docs.scrapy.org/en/latest/intro/tutorial.html#our-first- spider -在现实世界的例子。我的示例稍有不同,它有2个下一页,即 start_url>城市页面>单位页面 这是我要从中获取数据的单位页面。 我的代码: 但是当我运行它时,我得到: 因此

  • 本文向大家介绍如何使用Python抓取网页tag操作,包括了如何使用Python抓取网页tag操作的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了如何使用Python抓取网页tag操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1. 获取操作tag 获取操作tag的接种方式: soup.find_all(name=None, at

  • 问题内容: 该网站在一个列表中列出了250多种课程。我想获取每个课程的名称,然后使用php将其插入到我的mysql数据库中。这些课程如下所示: 有没有办法在PHP中做到这一点,而不是让我陷入疯狂的数据输入梦night? 问题答案: 正则表达式效果很好。 请参阅文档 preg_match。

  • 问题内容: 我正在尝试开发一个简单的网页抓取工具。我想提取没有代码的文本。我实现了这个目标,但是我发现在某些加载了的页面中,我没有获得良好的结果。 例如,如果一些代码添加了一些文本,则看不到它,因为当我调用 我得到的原始文本没有添加文本(因为在客户端执行了)。 因此,我正在寻找一些解决此问题的想法。 问题答案: 一旦安装了,请确保二进制文件在当前路径中可用: 例 举个例子,我用以下HTML代码创建