JSoup URL链接苦苦挣扎

时间:2013-11-18 02:12:16

标签: java html parsing url jsoup

我无法从此元素获取超链接。我尝试过element.attr(“href”)和element.abs(“href”)无济于事。以下是我要提取的内容:

 <p ><strong>Previous Chapter:</strong> <a href="http://www.mangahere.com/manga/mirai_nikki/v07/c031/">Mirai Nikki 31</a>

我想要来自该来源的网址,但我无法让它发挥作用。

这是我到目前为止的代码:

Document doc;
try{
    doc = Jsoup.connect(currentURL).get();
    Element e = doc.getElementsByClass("reader_tip").first().children().last().children().first();
    System.out.println(e.text());
    String backPage = e.attr("href");

    loadPage(backPage);
}
catch(Exception ex){
    ex.printStackTrace();
}

以及相关网址:

http://www.mangahere.com/manga/mirai_nikki/v07/c032/

这可能是我看到的那么简单。如果有人能提供帮助,我们将不胜感激。

1 个答案:

答案 0 :(得分:1)

您可以将选择器简化为p:contains(Previous Chapter) a,以查找包含“上一章”文字的P标签内的A标签。

完整示例:

String url = "http://www.mangahere.com/manga/mirai_nikki/v07/c032/";
String ua = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.33 (KHTML, like Gecko) Chrome/27.0.1438.7 Safari/537.33";

Document doc = Jsoup.connect(url).userAgent(ua).timeout(10 * 1000).get();
Element a = doc.select("p:contains(Previous Chapter) a").first();
String backUrl = a.attr("href");

System.out.println(String.format("Back URL: %s (%s)", backUrl, a.text()));

打印:

Back URL: http://www.mangahere.com/manga/mirai_nikki/v07/c031/ (Mirai Nikki 31)

请参阅Try jsoupjsoup select syntax documentation