【问题标题】:Extract href values inside td tags in jsoup在jsoup中提取td标签内的href值
【发布时间】:2012-06-18 05:50:51
【问题描述】:

我有

<table class="table" >
<tr>   
 <td><a href="url">text1</a></td>    
<td>text2</td> 

 </tr>
  <tr>
    <td><a href="url2">text</a></td> 
   <td>text</td> 

</tr>

我想提取所有行的 url 和 text 我用

Document doc = Jsoup.connect(url).get();
for (Element table : doc.select("table.table")) {
                for (Element row : table.select("tr")) {
                     Elements tds = row.select("td");
                           String text1=tds.get(0).text();
                           String url= row.attr("href");
                         System.out.println(text1+ "," + url);
                }
}

我得到了 text1 值,但 url 为空。

如何从 td 标签中获取 url?

【问题讨论】:

    标签: java html-parsing jsoup


    【解决方案1】:

    你(也许其他人)可以试试这个:

      Document doc = Jsoup.connect(url).get();
            for (Element table : doc.select("table.table")) {
                for (Element row : table.select("tr")) {
                    for (Element tds : row.select("td")) {
                        Elements links = tds.select("a[href]");
                        for (Element link : links) {
                            System.out.println("link : " + link.attr("href"));
                            System.out.println("text : " + link.text());
                        }
                    }
                }
            }
    

    【讨论】:

      【解决方案2】:

      你的行变量不是a标签,所以上面没有href属性。

      试试这个:

      Element table = doc.select("table.table");
      Elements links = table.getElementsByTag("a");
      for (Element link: links) {
          String url = link.attr("href");
          String text = link.text();
          System.out.println(text + ", " + url);
      }
      

      这几乎是从JSoup documentation中提取的

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-15
        • 2018-04-23
        • 2017-09-29
        相关资源
        最近更新 更多