Как получить элемент href с селектором? - PullRequest
0 голосов
/ 16 августа 2011

Я использую это, чтобы получить товары с этого сайта и вернуться к списку.

  Document doc = null;
    try {
        doc = Jsoup.connect("http://www.gamespy.com/index/release.html").get();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
        // Get all td's that are a child of a row - each game has 4 of these
        Elements games = doc.select("tr>  td.indexList1, tr > td.indexList2");

        // Iterator over those elements     
        ListIterator<Element> postIt = games.listIterator();          
        while (postIt.hasNext()) {     
            // ...It 

            while (postIt.hasNext()) {     
                // Add the game text to the ArrayList     
                String name = postIt.next().text();
                String platform = postIt.next().text();
                String genre = postIt.next().text();
                String releaseDate = postIt.next().text();
                gameList.add(new GameRelease(name, platform, genre, releaseDate));
                Log.v(TAG, name +platform + genre +releaseDate);
            }

Это HTML для каждого элемента

<tr>
<td class="indexList1" align="left">
  <a href="http://pc.gamespy.com/pc/hacker-evolution-duality-/" class="b1">  
    <em>Hacker Evolution Duality </em>
  </a>
</td>
<td class="indexList1" align="center">
  PC 
</td>    
<td class="indexList1" align="center">

  Adventure 
</td>
<td class="indexList1" align="center">
    August 15, 2011
    <!--08/15/2011-->
</td>

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

Но я хочу сохранить URL для каждого элемента в строке.

Ответы [ 2 ]

2 голосов
/ 16 августа 2011
while (postIt.hasNext()) {
    // Get the title of the game
    Element title = postIt.next();

    System.out.println(title.text());

    // Get the anchor element
    Element url = title.select("a").first();

    // Get the URL here @@@
    System.out.println(url.attr("href"));

    // Unneeded elements
    Element platform = postIt.next();
    Element genre = postIt.next();

    // Get the release date of the game
    Element release = postIt.next();
    System.out.println(release.text() + "\n@@@@@@");
}

РЕДАКТИРОВАТЬ: В вашем случае:

Element name = postIt.next();
String nameString = name.text();

Element url = name.select("a").first();
String urlString = url.attr("href");
1 голос
/ 16 августа 2011

Каждый элемент имеет одинаковый шаблон, но я хочу знать, могу ли я получить URL для каждого элемента тоже.

Elements links = doc.getElementsByTag("a"); // or getElementsByClass("b1");

ListIterator<Element> postIt = games.listIterator();          
    while (postIt.hasNext()) {
        String linkHref = link.attr("href");
    }
}
...