使用jsoup从其他div / id类中的类中提取href

时间:2011-09-20 08:03:56

标签: java html-parsing jsoup

你好我试图从以下来源中提取“title”类中的第一个href(源只是整个页面的一部分,但是我使用的是整个页面):

div id="atfResults" class="list results ">
<div id="result_0" class="result firstRow product" name="0006754023">
    <div id="srNum_0" class="number">1.</div>
        <div class="image">
        <a href="http://www.amazon.co.uk/Essential-Modern-Classics-J-Tolkien/dp/0006754023/ref=sr_1_1?ie=UTF8&amp;qid=1316504574&amp;sr=8-1">
        <img src="http://ecx.images-amazon.com/images/I/31ZcWU6HN4L._AA115_.jpg" class="productImage" alt="Product Details">
</a>
</div>
<div class="data">
    <div class="title">
<a class="title titleHover" href="http://www.amazon.co.uk/Essential-Modern-Classics-J-Tolkien/dp/0006754023/ref=sr_1_1?ie=UTF8&amp;qid=1316504574&amp;sr=8-1">Essential Modern Classics - The Hobbit</a>
        <span class="ptBrand">by J. R. R. Tolkien</span>
 <span class="bindingAndRelease">(<span class="binding">Paperback</span> -&nbsp;2 Apr 2009)</span>
        </div>

我已经尝试了select函数和getElementByClass的几种变体,但都给了我一个“null”值,例如:

Document firstSearchPage = Jsoup.connect(fullST).get();
Element link = firstSearchPage.select("div.title").first();

如果有人可以帮我解决这个问题,并推荐一些阅读领域,那么我将来可以避免这个问题,我们将不胜感激。

1 个答案:

答案 0 :(得分:0)

CSS选择器div.title,返回<div class="title">,而不是您想象的链接。如果您想要<a class="title">,那么您应该使用a.title选择器。

Element link = document.select("a.title").first();
String href = link.absUrl("href");
// ...

或者如果<a class="title">在该点之前出现在<div class="title">之外的文档的其他位置,那么您需要以下更具体的选择器:

Element link = document.select("div.title a.title").first();
String href = link.absUrl("href");
// ...

这将返回第一个<a class="title"> <div class="title">的孩子。