Извлечение href из класса в другие классы div / id с помощью jsoup - PullRequest
0 голосов
/ 20 сентября 2011

Здравствуйте. Я пытаюсь извлечь первый href из класса "title" из следующего источника (источник является только частью всей страницы, однако я использую всю страницу):

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, но все они дали мне «нулевое» значение, например:

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

Если бы кто-то мог помочь мне с решением этой проблемы и порекомендовать некоторые области чтения, чтобы я мог избежать этой проблемы в будущем, это было бы очень признательно.

1 Ответ

0 голосов
/ 22 сентября 2011

Селектор 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">.

...