- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我尝试使用 jsoup 制作图像链接下载器。我制作了一个下载器 HTML 代码部分,当我完成解析部分时,我认识到,有时出现的图像链接没有主要部分。所以我找到了absUrl解决方案,但由于某些原因它不起作用(它给了我空)。所以我尝试使用 uri.resolve() ,但它给了我不变的结果。所以现在我不知道如何解决。我附加了部分代码,负责解析 ant 将 url 写入字符串:
public static String finalcode(String textin) throws Exception {
String text = source(textin);
Document doc = Jsoup.parse(text);
Elements images = doc.getElementsByTag("img");
String Simages = images.toString();
int Limages = countLines(Simages);
StringBuilder src = new StringBuilder();
while (Limages > 0) {
Limages--;
Element image = images.get(Limages);
String href = image.attr("src");
src.append(href);
src.append("\n");
}
String result = src.toString();
return result;
}
最佳答案
看起来您是从字符串解析 HTML,而不是从 URL 解析。由于jsoup无法知道该HTML代码来自哪个URL,因此它无法创建绝对路径。
要为文档设置此 URL,您应该使用 Jsoup.parse(String html, String baseUri)
解析它。版本,例如
String url = "http://server/pages/document.htlm";
String text = "<img src = '../images/image_name1.jpg'/><img src = '../images/image_name2.jpg'/>'";
Document doc = Jsoup.parse(text, url);
Elements images = doc.getElementsByTag("img");
for (Element image : images){
System.out.println(image.attr("src")+" -> "+image.attr("abs:src"));
}
输出:
../images/image_name1.jpg -> http://server/images/image_name1.jpg
../images/image_name2.jpg -> http://server/images/image_name2.jpg
<小时/>
其他选项是让 Jsoup 通过提供 URL 而不是 HTML 字符串来直接解析页面
Document doc = Jsoup.connect("http://example.com").get();
这样 Document 将知道它来自哪个 URL,因此它将能够创建绝对路径。
关于java - Jsoup:absUrl 中的结果为空(abs:),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28163528/
我尝试使用 jsoup 制作图像链接下载器。我制作了一个下载器 HTML 代码部分,当我完成解析部分时,我认识到,有时出现的图像链接没有主要部分。所以我找到了absUrl解决方案,但由于某些原因它不起
我有一个程序,我需要它做的就是从文本文件中提取 URL 并将它们保存到另一个文本文件中。代码调用ExtractHTML2.getURL2(url,input);这只是提取给定链接的 HTML 代码(可
这个问题在这里已经有了答案: How do I get the absolute path of the current page in Angular 2? (5 个答案) 关闭 6 年前。 有没
这里是相关代码: https://www.facebook.com/sharer/sharer.php?u={{$location.absUrl()}} https://www.facebook.c
我有以下 JS 代码,我在不同的地方调用它来包含 CSS 样式: $('head:first').prepend('') } 它适用于 Firefox 和 Chrome,但不适用于
我是一名优秀的程序员,十分优秀!