如何解析html以获得3个URL分隔字符串?

时间:2011-09-19 03:20:44

标签: java android dom jsoup

我正在尝试解析此HTML

中的每个网址
<div class="latest-media-images">
    <div class="hdr-article">LATEST IMAGES</div>
    <a class="lnk-thumb" href="http://media.pc.ign.com/media/093/093395/imgs_1.html"><img id="thumbImg1" src="http://media.ignimgs.com/media/thumb/351/3513804/the-elder-scrolls-v-skyrim-20110824023151748_thumb_ign.jpg" class="latestMediaThumb" alt="" height="109" width="145"></a>
    <a class="lnk-thumb" href="http://media.pc.ign.com/media/093/093395/imgs_1.html"><img id="thumbImg2" src="http://media.ignimgs.com/media/thumb/351/3513803/the-elder-scrolls-v-skyrim-20110824023149685_thumb_ign.jpg" class="latestMediaThumb" alt="" height="109" width="145"></a>
    <a class="lnk-thumb" href="http://media.pc.ign.com/media/093/093395/imgs_1.html"><img id="thumbImg3" src="http://media.ignimgs.com/media/thumb/351/3513802/the-elder-scrolls-v-skyrim-20110824023147685_thumb_ign.jpg" class="latestMediaThumb" alt="" height="109" width="145"></a>
</div>

我想使用jsoup将每个URL解析为单独的String。

我一直在用jsoup解析做得很好。但是我想在这里做什么我不知道从哪里开始将每个网址都放在自己的字符串

我如何在这里做这件事?解析然后让它分离字符串?

编辑:

或者,如果我不能让他们分开字符串,也许我可以将它们设置为列表?并以某种方式按位置加载它们?

或者我可以加载每一个...... 1乘1?

我想到的一些建议......

编辑:从下面的评论中我看到这就是我需要将链接提取为列表。

/**
* Example program to list links from a URL.
*/
public class ListLinks {
    public static void main(String[] args) throws IOException {
        Validate.isTrue(args.length == 1, "usage: supply url to fetch");
        String url = args[0];
        print("Fetching %s...", url);

        Document doc = Jsoup.connect(url).get();
        Elements links = doc.select("a[href]");
        Elements media = doc.select("[src]");
        Elements imports = doc.select("link[href]");

        print("\nMedia: (%d)", media.size());
        for (Element src : media) {
            if (src.tagName().equals("img"))
                print(" * %s: <%s> %sx%s (%s)",
                        src.tagName(), src.attr("abs:src"), src.attr("width"), src.attr("height"),
                        trim(src.attr("alt"), 20));
            else
                print(" * %s: <%s>", src.tagName(), src.attr("abs:src"));
        }
    }
}

我不认为这完全针对我的使用进行了优化,但方向正确。

我需要做些什么来提取我的html src上面的示例列表?

1 个答案:

答案 0 :(得分:2)

你想要所有图片吗?然后尝试这个XPath表达式:

XPath xpath = XPathFactory.newInstance().newXPath();
NodeList nodes = (NodeList) xpath.evaluate("//img", doc, XPathConstants.NODESET);

List<String> imageUrls = new ArrayList<String>();
for (int i = 0; i < nodes.getLength(); i++) {
    Node img = nodes.item(i);
    imageUrls.add(img.getAttributes().getNamedItem("src").getNodeValue());
}