Android使用JSOUP for HTML

时间:2014-01-12 06:38:19

标签: java html-parsing jsoup

当使用JSOUP来解析这个html文档时,我完全迷失了......

我不是故意要求直接编写代码,但如果有人有时间或者可以让我开始那将会很棒......

这是文件: http://radar.weather.gov/ridge/RadarImg/N0R/ILN/

如果你查看源我试图获取这些行:

<tr><td valign="top"><img src="/icons/image2.gif" alt="[IMG]"></td><td><a href="ILN_20140112_0021_N0R.gif">ILN_20140112_0021_N0R.gif</a></td><td align="right">12-Jan-2014 00:23  </td><td align="right">2.2K</td><td>&nbsp;</td></tr>

正如您所注意到的那样......我需要

中的值
<a href=

我还需要前10行中的那个值......

正如我所说,如果有人有时间帮助我,我们将不胜感激!

3 个答案:

答案 0 :(得分:2)

首先,您需要将HTML的内容存储到文档中(更多地解释here):

String url = "http://radar.weather.gov/ridge/RadarImg/N0R/ILN/";    
Document doc = Jsoup.connect(url).get();

接下来,从文档中选择所需的元素(请参阅here)。在以下行中,它将选择包含字符串<a>的{​​{1}}属性的所有href元素:

"gif"

然后打印出前十个的值,你可以使用一个循环。 Elements links = doc.select("a[href]:contains(gif)"); 方法允许您仅提取特定属性的值,而不是完整的HTML或其文本:

attr()

输出结果为:

for (int i=0;i<10;i++) {
    System.out.println(links.get(i).attr("href"));
}

这基本上是您在Jsoup中进行的大部分解析的基本方法。您应该从页面中提取一些其他元素(使用this page作为参考)。

答案 1 :(得分:0)

试试这个

String TestUrl = "<tr><td><img src='/icons/image2.gif' alt='[IMG]'></td><td><a href='ILN_20140112_0021_N0R.gif'>ILN_20140112_0021_N0R.gif</a></td><td align='right'>12-Jan-2014 00:23</td><td align='right'>2.2K</td><td>&nbsp;</td></tr>";
Document doc =  Jsoup.parse(TestUrl);
Element link = doc.select("a").first();
/**
* value will be "ILN_20140112_0021_N0R.gif"
*/
String value = link.text();

答案 2 :(得分:0)

编辑:改为参考@ ashatte的解决方案。

Document doc = Jsoup.parse
                 (new URL("http://radar.weather.gov/ridge/RadarImg/N0R/ILN/"),
                    3000); 
          //Or whatever your link is; 3000 is timeout

            int ignoreCount = 0; 
            //using a counter to ignore top 2 lines 
            for (Element item : doc.select("tr")) {
            // Selects the <tr> elements so item is a single <tr>
                if (a > 1) {
                    Element link = item.select("a").first(); 
                         // selects first <a> element
                    if (link != null && link.hasAttr("href"))
                        String href = link.attr("href"));
                         // fetches href attribute from the selected <a> 
                }
                a++;
            }

这只是许多人中的一种方式。我强烈建议您阅读JSOUP cookbook