2016-03-12 2 views
0

Я создаю приложение для Android и пытаюсь получить только конкретную ссылку со следующего сайта, но я не могу, потому что сайт использует одно и то же имя для всех классов (это только небольшая часть из HTML-кода сайта).JSoup: как разобрать определенную ссылку

<td class="td-file"><span class="td-value" 
id="JOT_FILECAB_label_wuid:gx:4c83ae813389c090" aria-hidden="true"> 
Ε.ΛΣΧ.ΑΕΝ.02 ΑΠΟ 22-2-2016.pdf</span><br /> 
<SPAN style="word-spacing: 3px;"> 
<a href="https://docs.google.com/viewer?a=v&amp;pid=sites&amp;srcid=ZGVmYXVsdGRvbWFpbnxhZW5tYWttZWNofGd4OjRjODNhZTgxMzM4OWMwOTA" dir="ltr" target="_blank">Προβολή</a> 
<a href="/site/aenmakmech/tmemata/%CE%95.%CE%9B%CE%A3%CE%A7.%CE%91%CE%95%CE%9D.02%20%CE%91%CE%A0%CE%9F%2022-2-2016.pdf?attredirects=0&amp;d=1" dir="ltr">Λήψη</a> 
</SPAN></td> 

Как анализировать, используя ID = "JOT_FILECAB_label_wuid: GX: 4c83ae813389c090"?

+0

вам нужно использовать данные для очистки данных –

+0

@NiravRanpara Знаете ли вы, что какой-либо учебник предлагает мне? – Costis94

+0

http://www.jacobward.co.uk/using-php-to-scrape-javascript-jquery-json-websites/ –

ответ

0

Я нашел простое решение, которое решает мою проблему. Я выбираю все «href» с сайта, я храню элементы в массиве, а из массива выбираю тот, который я хочу.

import java.io.IOException; 

import org.jsoup.Jsoup; 
import org.jsoup.nodes.Document; 
import org.jsoup.nodes.Element; 
import org.jsoup.select.Elements; 

public class Main { 

public static void main(String[] args) { 
    Document doc = null; 

    try { 
    doc = Jsoup.connect("https://sites.google.com/site/aenmakmech/tmemata").get(); 
    Elements links = doc.select("a[href]"); 

    String[] urls = new String[links.size()]; 
    for (int i = 0; i < links.size(); i++) { 
    urls[i] = links.get(i).attr("href"); 
    //System.out.println(prices[i]); 
    } 

    String specific_url = urls[77]; 
    System.out.print(specific_url); 

    } catch (IOException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
    } 


} 
}; 

Спасибо за помощь.

0

Вы можете попробовать следующим образом

Document doc; 
Element table; 
Elements rows; 



table = doc.select("table").get(0); // select the first table. 
rows = table.select("tr"); 

for (int i = 0; i < rows.size(); i++) { 
    Element row = rows.get(i); 
    Elements cols = row.select("td"); 
    // Elements links = table.getElementsByTag("a"); 
    // Elements heading = cols.select("h3"); 

    if (cols.size() > 0) 
     if (cols.get(0).text().contains("Football")) { 

      String name = cols.get(0).text(); 
      String type = cols.get(1).text(); 

      String myLink = cols.get(2).html(); 

      String parseLink = myLink.substring(myLink.indexOf("\"") + 1, myLink.lastIndexOf("\"")); 
      String newLink = parseLink.replaceAll("&amp;", "&"); 

     } 
} 
+0

Это не лучше, если изменить формат таблицы на веб-сайте, после чего приложение сообщит об ошибке. Его всегда предлагали соскабливать с php-стороны и отправлять JSON на android –

+0

Да, вы правы, если ссылка изменилась, у вас будет проблема, но это просто, если вы хотите синтаксически проанализировать, иначе это не правильный путь! –