繁体   English   中英

将相对路径转换为在JSoup中不起作用的绝对路径

[英]Converting relative paths into absolute ones not working in JSoup

我试图访问网页中的相对链接(a [href]),并将其替换为绝对链接,然后在控制台上打印网页的修改后的HTML。 但是,当我运行程序后查看链接时,没有进行任何更改。 这是我的代码:

        Document doc = null;

    try {
        doc = Jsoup.connect("http://jsoup.org/cookbook/extracting-data/dom-navigation").userAgent("Mozilla").get();
    } catch (IOException e1) {
        e1.printStackTrace();
    }

    Elements imports = doc.select("a[href]");
    String s = "";
    for (Element link : imports) {
        //System.out.println("\n"+link.attr("href"));
        //System.out.println(link.attr("abs:href"));

        if(link.attr("href").equalsIgnoreCase("/")){
            //Do nothing for now
        }
        else{
            s = doc.toString().replaceAll(link.attr("href"), link.attr("abs:href"));
        }
    }
    System.out.println(s);

一个非常奇怪的事情是,在此程序中,我连接到http://jsoup.org/cookbook/extracting-data/dom-navigation,但是当我连接到此链接http://csb.stanford.edu/ class / public / pages / sykes_webdesign / 05_simple.html我注意到正在进行更改。 那么这可能是问题所在,我的代码或网页有问题吗?

请改用<your element>.absUrl("href") 而对于测试,打印结果元素 ,你已经改变了直接后。

要替换网址,您可以使用类似( 未经测试)的方法:

Elements urls = doc.select("a[href]");

for( Element urlElement : urls )
{
    urlElement.attr("href", urlElement.absUrl("href"));
    System.out.println(urlElement); // Print result directly after changes have been done
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM