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を探しています。

画像のURLを取得すると、「../」で始まります。これは、1つのレベルをベイクすることを意味します。

簡単に言うと、「www.guiabh.com.br/evento/」+画像のURLに戻ります。

ここで接続しようとしているため、エラーがスローされます: "../imgs_cadastradas/seu madruga.jpg"

私はあなたが画像を取得した場所からURLを取得する方法を持っていることをお勧めします、そして私が上で言ったことを予想するよりも。

于 2012-07-27T20:34:49.750 に答える