0

使用 jsoup 获取图像的绝对 URL 时出现错误。

代码:

package org.zzz.parser;
import java.io.File;
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;

public class DocumentParser {
    /**
     * Parsing html from file
     */
    public static void main(String[] args) {

        String url = "www.guiabh.com.br/evento/back-in-jack-seu-madruga.aspx";

        File input = new File("/home/thalesfc/Code/recSystem/wgetao/" + url);

        Document doc = null;

        // parsing the document
        try {
            doc = Jsoup.parse(input, "ISO8859-1", url);
        } catch (IOException e) {
            System.err.println("$ Erro ao fazer o parsing do arquivo: " + input.getName());
            e.printStackTrace();
        }

        //getting the image url
        Element image = doc.getElementById("ctl00_ContentPlaceHolderConteudo_controleInternoAgito1_imageFotoCasa");
        String imageUrl = image.attr("src");
        String imageRealUrl = image.absUrl("src");
        String imageRealUrl2 = image.attr("abs:src");

        System.out.println("# image: " + imageUrl);
        System.out.println("# real image: " + imageRealUrl);
        System.out.println("# real image 2: " + imageRealUrl2);
    }
}

输出:

# 图片:../imgs_cadastradas/seu madruga.jpg

# 真实图片:

# 真实图片2:

理想的输出是: http ://www.guiabh.com.br/imgs_cadastradas/seu madruga.jpg

难道我做错了什么??

4

1 回答 1

0

您正在查看“www.guiabh.com.br/evento/back-in-jack-seu-madruga.aspx”网址。

当你得到图片的url时,它以“../”开头,这意味着要烘焙一个lvl。

简单地说,它可以回到“www.guiabh.com.br/evento/”+图片网址。

它会引发错误,因为您试图在此处连接:“../imgs_cadastradas/seu madruga.jpg”

我建议有一种方法可以从您获取图像的位置获取 URL,而不是预期我上面所说的内容。

于 2012-07-27T20:34:49.750 回答