java - 从网站中提取所有图像

标签 java html css dom jsoup

我需要从网站中提取所有图像。到目前为止,我用过

Elements images = node.select("img");

使用 Jsoup。但我意识到它可能会遗漏一些图像,例如 this 中的顶部图像在 css 中定义的站点。

有没有一种简单的方法可以不漏掉这样的图片,并获取一个页面中的所有图片作为Jsoup元素? 请注意,“没有简单的方法可以做到这一点”也是一个有效的答案,我只是想知道这一点。谢谢!

最佳答案

如果您只需要从站点获取所有图像,您首先需要获取所有标签,然后从加载到该站点的 css 获取所有背景图像。但这仍然不是所有图像,因为有些可以通过 javascript 加载(或者一些标签或 css 可以用 javascript 更改)。

为了确保在浏览器加载网站时获得完全加载网站所需的一切,获取 DOM 树,遍历它,检查 DOM 中每个元素的 css 属性以获取背景图像,并从中提取所有图像标签。

我不确定 Jsoup 是否可以做到这一点。可能它不会考虑 javascript 甚至 css。它似乎只是 html 解析器。

我认为最好的方法是使用浏览器的开发人员控制台(发回我对您上一个问题的回答)。在控制台中,您可以执行 javascript 以遍历 DOM 树中的所有元素并获取 url 列表,您稍后可以复制这些 url 并用于通过某些服务器端脚本加载图像。

关于java - 从网站中提取所有图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18287351/

相关文章:

android - 三星S6和三星S7手机的实际视口(viewport)尺寸是多少?

Java Setters 在 Array 对象上没有按预期工作

java - java控制台程序出错

html - 什么情况下可以得到 "Application Cache Obsolete event "

css - 如何使用页面中心作为引用来对齐 div 元素?

css - 我怎样才能将菜单栏分成两行

java - 如何根据目标点确定 2 个臂段的旋转?

java - 难以使用 SimpleDateFormat 解析字符串

javascript - 如何使用jquery监控ajax请求的进度响应

html - Foundation 5 显示模态不起作用