Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在groovy/java中获得通过ajax加载的页面的HTML内容?_Java_Javascript_Html_Ajax_Groovy - Fatal编程技术网

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

如何在groovy/java中获得通过ajax加载的页面的HTML内容?,java,javascript,html,ajax,groovy,Java,Javascript,Html,Ajax,Groovy,当我在Groovy中尝试从URL获取HTML时,我只获取静态HTML。所有动态内容(显然)都未加载。有什么方法可以获取动态加载的内容吗? 我考虑从静态内容中提取所有脚本URL,然后从这些脚本中提取ajax调用并遵循它们,但我的代码很快就会变得一团糟 如果你认为这是不可能的,那么继续读下去 我的动机是为图像索引器构建一个bookmarklet,与Pinterest的bookmarklet没有什么不同。但我猜他们面临着同样的问题,无法提取通过ajax加载的图像,并发布了chrome扩展。我可以将用户

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

如果你认为这是不可能的,那么继续读下去

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

编辑:如果您认为这也是不可能的,那么请进一步阅读

我想我会一个接一个地提取所有的图像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问题。我不想显示窗口的打开和关闭!有没有跳过此操作的方法?

如果您想获取动态HTML,可以尝试使用DOM解析器。您应该能够使用将浏览器驱动到感兴趣的站点,等待它完成加载,然后枚举页面上的图像标记,也许会有帮助。我还没试过这个顺便说一句,但它应该能起作用。。。但是它再一次对我没有帮助,因为我需要执行所需的操作(以编程方式)来获取新信息。对于不同的网站,这些操作是不同的,我将无法概括所有网站的代码。请阅读我的最新更新!