2016-08-19 7 views
2

Ich arbeite an einem Projekt, wo ich HTML für das Extrahieren von Daten von einer Webseite analysieren muss. Ich benutze Jsoup in Java. Ich muss Daten aus den folgenden Inhalten extrahieren.Parsing HTML href Attribut

<tr> 
      <td><small><a href="http://www.timeanddate.com/worldclock/fixedtime.html?iso=20160821T2100&amp;p1=248" target="_blank">2016/08/21 21:00</a></small></td> 
      <td><small><a href="https://agc003.contest.atcoder.jp">AtCoder Grand Contest 003</a></small></td> 

</tr> 

kann ich den Wert Contest Namen und Zeit erhalten, aber, wie die URL zu extrahieren. Ich möchte die Contest URL https://agc003.contest.atcoder.jp bekommen, wie bekommt man das ??

EDIT: Hier ist mein Code

private void getAC() throws IOException { 

    Document doc = Jsoup.connect("https://atcoder.jp/").userAgent(Desktop.getDesktop().toString()).get(); 
    Element table = doc.getElementsByClass("table-responsive").get(1); 
    Elements contestStartTime = table.getElementsByTag("td"); 
    int cnt = 1; 
    for (Element i : contestStartTime) { 
     System.out.println(cnt + ". " + i.html()); 
     cnt++; 
    } 

} 

+0

Ich bin nicht f vertraut mit JSoup oder Java, aber ich würde die Datei laden, lesen Sie Zeile für Zeile und verwenden Sie ein Regex-Muster, um die benötigten suchen, dann analysieren Sie die URL aus dieser Zeile. – dinotom

+0

Kannst du deinen Code hinzufügen, um den Namen und die Zeit des Wettbewerbs zu erhalten? – TDG

+0

Da die Tags anscheinend keine ID oder Anything haben, um sie anzusprechen, bin ich mir nicht wirklich sicher. Um jedoch die URL zu erhalten, sobald Sie das Element finden, ist es einfach. 'Elements.attr (" href ")' sollte dir den Wert –

Antwort

2

JSoup haben reiche api für DOM-Verarbeitung, sucht diese Funktionen:

Element content = doc.getElementById("content"); 
Elements links = content.getElementsByTag("a"); 
for (Element link : links) { 
    String linkHref = link.attr("href"); 
    String linkText = link.text(); 
} 

Auch können Sie Ihre Links auf diese Weise erhalten

Elements links = doc.select("table a[href]"); 
+0

Danke. Es funktioniert ! : D –