繁体   English   中英

如何使用Jsoup从链接中提取href详细信息?

[英]How to extract href detail from links using Jsoup?

我有这种形式的HTML:

 <table> 
               <tbody>
                <tr> 
                 <td class="t1"><a href="/click/site1" target="_blank" rel="nofollow"><img class="png" src="" alt="site1"></a></td> 
                 <td class="t2 up"><a href="/click/site1" target="_blank" rel="nofollow">INFORMATION</a></td> 
                 <td class="t2 down"><a href="/click/site1" target="_blank" rel="nofollow">INFORMATION</a></td> 
                 <td class="t2 up mark"><a href="/click/site1" target="_blank" rel="nofollow">INFORMATION</a></td> 
                </tr>
                <tr> 
                 <td class="t1"><a href="/click/site2" target="_blank" rel="nofollow"><img class="png" src="" alt="site2"></a></td> 
                 <td class="t2 down"><a href="/click/site2" target="_blank" rel="nofollow">INFORMATION</a></td> 
                 <td class="t2 stable"><a href="/click/site2" target="_blank" rel="nofollow">INFORMATION</a></td> 
                 <td class="t2 up"><a href="/click/site2" target="_blank" rel="nofollow">INFORMATION</a></td> 
                </tr>
                 .
                 . 
                 .
              </tbody> 
 </table>

我想提取href值(/ click / site1)或alt值(site1)。 如何使用Jsoup做到这一点? 谢谢

编辑:这是我写的代码:

for(Element table : doc.select("table"))
        {

            for(Element row : table.select("tr"))
            {
                System.out.print(table.attr("href").toString());
                Elements column = row.select("td");
                {
                System.out.println(column.text());
                }
            }
            System.out.println();
        }

但是这一行System.out.print(table.attr("href").toString()); 什么都不打印

在jsoup cookbook中描述了此过程。

http://jsoup.org/cookbook/extracting-data/working-with-urls

Document doc = Jsoup.connect("http://jsoup.org").get();

Element link = doc.select("a").first();
String relHref = link.attr("href"); // == "/"
String absHref = link.attr("abs:href"); // "http://jsoup.org/"

在您的问题中,您尝试从表中获取href属性,但是该表没有href属性。 您可以搜索所有标签,也可以在行内选择td,然后选择其中的链接。

是否添加了一些代码更改了您的示例并添加了一些代码以仅编写链接。

for(Element table : doc.select("table")) {
    for(Element row : table.select("tr")) {
        Elements column = row.select("td");
        Elements atag = column.get(0).select("a");
        System.out.print(atag.get(0).attr("href").toString());
        System.out.print(" ");
        System.out.println(column.text());
    }
    System.out.println();
}

for(Element link : doc.select("a")) {
    System.out.println(link.attr("href")); // == "/"
}

暂无
暂无

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

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