如何在groovy / java中获取通过ajax加载的页面的HTML内容?

时间:2013-08-14 12:01:10

标签: java javascript html ajax groovy

当我尝试从Groovy中的URL获取HTML时,我只获取静态HTML。所有动态内容(显然)都没有加载。有什么方法可以获得动态加载的内容吗? 我想从静态内容中提取所有脚本URL,然后从这些脚本中提取ajax调用并遵循它们,但我的代码会很快变得混乱。

如果您认为这是不可能的,请继续阅读。

我的动机是为图像索引器构建一个书签,与Pinterest的书签不同。但我猜他们面临同样的问题,即无法提取通过ajax加载的图像,并发布了chrome扩展。我可以以某种方式发布用户当前看到的HTML到我的网站?相同的原始策略不允许我从用户看到我自己的域的页面进行ajax调用。由于url大小限制,我也不能将HTML作为url参数传递。然后我想我会提取图像srcs并将它们作为url参数传递,但如果图像数量很大,我将再次面对URL参数大小问题。还有另一种方法吗?

编辑:如果您认为这也是不可能的,请继续阅读。

我以为我会逐个提取所有图片网址,然后将它们分别发送到每个图片集随机id参数的网址中。当我发送最后一个图像时,我可以发送一个参数来提及它是最后一个,所以我的应用程序知道它不应该期望更多。像这样:

var images = document.getElementsByTagName("img");
var imageSetId = Math.random() * 9999;
var generatedSrc = "";
for (var i in images){
   generatedSrc = "http://mydomain.myapp.com/extractor?src="+images[i].src+"&setId="+imageSetId;
   if (i==images.length-1){
      generatedSrc += "&last=true"
   }
   window.open(generatedSrc);
}

每次打开窗口时,我都可以保存图像的URL,并根据设置的ID,我可以重新创建该设置。一旦完成,我将关闭窗口,除非我收到last参数,并且我可以保持该窗口打开并向用户显示提取的图像。

但现在问题转变为UI问题。我不想显示窗户的开放状态!有没有办法跳过这个?

0 个答案:

没有答案