Hallo erstmal ich bin neu hier und hab schon die erste Frage.
Ich will Daten aus einer HTML-Page parsen, die Page sieht so aus.
Nun möchte ich gerne die Links die mich zu den weiteren Informationen bringen. Welche Ansätze kann ich verfolgen um dies so umzusetzten. Sollte ich einen HTML Parser oder über RegularExpression die Links holen.
Welche HTML parser gitb es für Java?
Danke schonmal im vorraus.
Ich will Daten aus einer HTML-Page parsen, die Page sieht so aus.
HTML:
<body onload="removeDefaultValues(false);" style="">
<div id="doc" style="height:100%;">
<div id="header" >
<div id="logo">
<img src="http://reiseauskunft.bahn.de/v/940/img/logo-db-bahn.gif" width="126" height="32" alt="DB Bahn" />
</div>
<div id="header-elements" class="clearfix">
<ul id="service-nav" class="clearfix">
<li><a href="http://www.bahn.de/app_kontakt_pk_de_DEU.shtml" tabindex="10" target="_blank" class="first">Kontakt</a></li>
<li><a href="http://www.bahn.de/app_hilfe_pk_de_DEU.shtml" tabindex="20" target="_blank" >Hilfe</a></li>
<li><a href="http://www.bahn.de/app_sitemap_pk_de_DEU.shtml" tabindex="30" target="_blank">Sitemap</a></li>
<li id="font-sizer">
<a href="http://reiseauskunft.bahn.de/bin/bhftafel.exe?input=Saarbr%FCcken+hbf&date=Do%2C+08.11.12&time=10%3A24&boardType=dep&REQTrain_name=&advancedProductMode=&GUIREQProduct_0=on&GUIREQProduct_1=on&GUIREQProduct_2=on&GUIREQProduct_3=on&GUIREQProduct_4=on&start=Suchen&&font-size=0" tabindex="40" class="font-normal" title="Schrift normal">a</a><span>,</span>
<a href="http://reiseauskunft.bahn.de/bin/bhftafel.exe?input=Saarbr%FCcken+hbf&date=Do%2C+08.11.12&time=10%3A24&boardType=dep&REQTrain_name=&advancedProductMode=&GUIREQProduct_0=on&GUIREQProduct_1=on&GUIREQProduct_2=on&GUIREQProduct_3=on&GUIREQProduct_4=on&start=Suchen&&font-size=1" tabindex="50" class="font-large" title="Schrift größer">a+</a><span>,</span>
<a href="http://reiseauskunft.bahn.de/bin/bhftafel.exe?input=Saarbr%FCcken+hbf&date=Do%2C+08.11.12&time=10%3A24&boardType=dep&REQTrain_name=&advancedProductMode=&GUIREQProduct_0=on&GUIREQProduct_1=on&GUIREQProduct_2=on&GUIREQProduct_3=on&GUIREQProduct_4=on&start=Suchen&&font-size=2" tabindex="60" class="font-xl" title="Schrift extra groß">a++</a>
</li>
</ul>
</div>
</div>
<div id="main-nav" class="clearfix">
<h2 class="mainNaviHeadingCorrection">Hauptnavigation</h2>
<div id="nav1">
<ul id="main-nav-left">
<li id="mn-startseite"><a class="first jhover" href="http://www.bahn.de/app_home_pk_de_DEU.shtml" title="Startseite" ><span>Startseite</span></a></li>
<li id="mn-angebotsberatung">
<a class="jhover" href="http://www.bahn.de/app_angebote_pk_de_DEU.shtml" title="Angebotsberatung" ><span>Angebotsberatung</span></a>
</li>
<li id="mn-fahrplan">
<a class="jhover active" href="http://www.bahn.de/app_buchen_pk_de_DEU.shtml" title="Fahrplan & Buchung" ><span>Fahrplan & Buchung</span></a>
</li>
<li id="mn-services">
<a class="jhover" href="http://www.bahn.de/app_services_pk_de_DEU.shtml" title="Services" ><span>Services</span></a>
</li>
<li id="mn-bahncard">
<a class="jhover" href="http://www.bahn.de/app_bahncard_pk_de_DEU.shtml" title="BahnCard" ><span>BahnCard</span></a>
</li>
<li id="mn-urlaub">
<a class="jhover" href="http://www.bahn.de/app_urlaub_pk_de_DEU.shtml" title="Urlaub" ><span>Urlaub</span></a>
</li>
</ul>
<form style="width:215px;" id="login-form" action="#" method="post">
<ul id="main-nav-right">
<li id="mn-meinebahn"><a class="first " href="https://fahrkarten.bahn.de/privatkunde/start/start.post?lang=de&country=DEU&scope=meinebahn" title="Meine Bahn"><span>Meine Bahn</span></a></li>
</ul>
</form>
</div>
</div>
<div id="content" class="clearfix">
<div id="key-visual">
<div class="bar"></div>
</div>
<div id="hafasContainer">
<div class="hafasContent sq_results">
<h1 class="pagetitle"><a class="arrowlink" href="http://reiseauskunft.bahn.de/bin/bhftafel.exe/dn?ld=96248&rt=1&input=Saarbrücken Hbf%238000323&boardType=dep&time=10:24&productsFilter=11111&dateBegin=09.12.12&dateEnd=14.12.13&start=yes&rt=0">Suche im Gesamtfahrplan 09.12.12 - 14.12.13</a>Abfahrt und Ankunft</h1>
<form action="http://reiseauskunft.bahn.de/bin/bhftafel.exe/dn?ld=96248&rt=1&" id="sqQueryForm" name="formular" method="post" style="display:inline;" onsubmit="return replaceB();">
<div id="sqQuery" class="clearfix">
<div class="leftBlock ">
<fieldset>
<label class="front wrap" for="HFS_input">Bahnhof / Haltestelle</label>
<input type="text" id="rplc0" name="input" value="Saarbrücken Hbf" size="40" maxlength="60" />
<input type="hidden" name="inputRef" value="Saarbrücken Hbf#008000323" />
<script type="text/javascript">
<!--
rplcArray = new Array();
rplcArray[0] = "rplc0";
new FSuggest({loc:"rplc0",
type:"S",
minChar:4,
requestURL:"http://reiseauskunft.bahn.de/bin/ajax-getstop.exe/dn?REQ0JourneyStopsS0A=1&REQ0JourneyStopsS0G=",
stopDelay:400,
requestType:"js"
});
// -->
</script>
<br />
</fieldset>
<fieldset>
<label class="front" for="HFS_selectDate">Datum / Zeit</label>
<img src="http://reiseauskunft.bahn.de/v/940/img/blaettern_links_16x16.png" height="16" width="16" border="0" onclick="calman.shiftDate('callink0',-1);" style="margin:0;vertical-align:middle; border: none;" class="pointer" alt="Einen Tag früher" title="Einen Tag früher" />
<input class="emphasized" style="margin-right: 0;" type="text" name="date" id="date" value="08.11.12" size="10" maxlength="14" onblur="javascript:this.notify(this);"/>
<img src="http://reiseauskunft.bahn.de/v/940/img/blaettern_rechts_16x16.png" height="16" width="16" border="0" onclick="calman.shiftDate('callink0',1);" style="margin:0;vertical-align:middle; border: none;" class="pointer" alt="Einen Tag später" title="Einen Tag später" />
<span class="jsShowInline" style="position: relative;">
<script type="text/javascript">
var monthsTexts = new Array("Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember");
var weekdayTexts = new Array("Mo","Di","Mi","Do","Fr","Sa","So");
var closeText = "Schließen";
</script>
<a id="callink0" onclick="return calman.toggleDisplay('callink0');" class="calendar"><img src="http://reiseauskunft.bahn.de/v/940/img/kalender_21x16.gif" width="21" height="16" title="Kalender" alt="Kalender" id="calendarlinkicon0"/></a>
<script type="text/javascript">
calman.config = {
"today" : parseUserDateInput("08.11.12"),
"viewPeriodS" : parseUserDateInput("11.12.11"),
"viewPeriodE" : parseUserDateInput("14.12.13"),
"dataPeriodS" : parseUserDateInput("11.12.11"),
"dataPeriodE" : parseUserDateInput("14.12.13"),
"monthsTexts" : monthsTexts,
"weekdaysTexts" : weekdayTexts,
"closeText" : closeText,
"showShortYear" : true,
"styleClass" : "calendardiv"
}
var calcon_config = {
"formName" : "document.formular",
"fieldName" : "date",
"referenceObject" : "callink0"
}
calman.createCalendar(calcon_config);
</script>
</span>
<img src="http://reiseauskunft.bahn.de/v/940/img/blaettern_links_16x16.png" height="16" width="16" border="0" onclick="shiftTime('HFS_time',-1);" class="pointer" style="margin:0;vertical-align:middle; border: none;" alt="Zurück zur vollen Stunde" title="Zurück zur vollen Stunde" />
<input style="margin-right: 0;" type="text" id="HFS_time" name="time" value="10:24" size="8" maxlength="20" />
<img src="http://reiseauskunft.bahn.de/v/940/img/blaettern_rechts_16x16.png" height="16" width="16" border="0" onclick="shiftTime('HFS_time',1);" class="pointer" style="margin:0;vertical-align:middle; border: none;" alt="Weiter zur vollen Stunde" title="Weiter zur vollen Stunde" />
<span id="changeTime" class="nowrap jsShowInline nopadding sqTimeChange" style="position: relative; margin-left: 5px;">
</span>
<br />
<input class="leftMargin radio" type="radio" id="dep" name="boardType" value="dep" checked="checked" /><label for="dep">Abfahrt</label>
<input class="radio" type="radio" id="arr" name="boardType" value="arr" /><label for="arr">Ankunft</label>
<br />
</fieldset>
</div>
<div class="rightBlock">
<fieldset>
<label class="front" for="HFS_trainName">Linie / Zugnummer (optional)</label>
<input type="text" id="HFS_trainName" name="REQTrain_name" value="" size="15" maxlength="15" />
<br />
</fieldset>
<fieldset>
<input type="hidden" name="advancedProductMode" />
<table class="products">
<tr class="icons" >
<td> </td>
<td><label for="prod_0"><img src="http://reiseauskunft.bahn.de/v/940/img/ice_24x24.gif" alt="ICE-Züge" title="ICE-Züge" width="24" height="24" /></label></td>
<td><label for="prod_1"><img src="http://reiseauskunft.bahn.de/v/940/img/ec_ic_24x24.gif" alt="Intercity- und Eurocityzüge" title="Intercity- und Eurocityzüge" width="24" height="24" /></label></td>
<td><label for="prod_2"><img src="http://reiseauskunft.bahn.de/v/940/img/ir_24x24.gif" alt="Interregio- und Schnellzüge" title="Interregio- und Schnellzüge" width="24" height="24" /></label></td>
<td><label for="prod_3"><img src="http://reiseauskunft.bahn.de/v/940/img/re_24x24.gif" alt="Nahverkehr, sonstige Züge" title="Nahverkehr, sonstige Züge" width="24" height="24" /></label></td>
<td><label for="prod_4"><img src="http://reiseauskunft.bahn.de/v/940/img/sbahn_24x24.gif" alt="S-Bahn" title="S-Bahn" width="24" height="24" /></label></td>
<td><label for="prod_5"><img src="http://reiseauskunft.bahn.de/v/940/img/bus_24x24.gif" alt="Busse" title="Busse" width="24" height="24" /></label></td>
<td><label for="prod_6"><img src="http://reiseauskunft.bahn.de/v/940/img/faehre_24x24.gif" alt="Schiffe" title="Schiffe" width="24" height="24" /></label></td>
<td><label for="prod_7"><img src="http://reiseauskunft.bahn.de/v/940/img/ubahn_24x24.gif" alt="U-Bahnen" title="U-Bahnen" width="24" height="24" /></label></td>
<td><label for="prod_8"><img src="http://reiseauskunft.bahn.de/v/940/img/tram_24x24.gif" alt="Straßenbahnen" title="Straßenbahnen" width="24" height="24" /></label></td>
</tr>
<tr class="cb">
<td>
<label class="front" for="prod_0">Verkehrsmittel</label>
</td>
<td>
<input id="prod_0" class="checkbox " type="checkbox" name="GUIREQProduct_0" title="ICE-Züge" checked="checked" />
</td>
<td>
<input id="prod_1" class="checkbox " type="checkbox" name="GUIREQProduct_1" title="Intercity- und Eurocityzüge" checked="checked" />
</td>
<td>
<input id="prod_2" class="checkbox " type="checkbox" name="GUIREQProduct_2" title="Interregio- und Schnellzüge" checked="checked" />
</td>
<td>
<input id="prod_3" class="checkbox " type="checkbox" name="GUIREQProduct_3" title="Nahverkehr, sonstige Züge" checked="checked" />
</td>
<td>
<input id="prod_4" class="checkbox " type="checkbox" name="GUIREQProduct_4" title="S-Bahn" checked="checked" />
</td>
<td>
<input id="prod_5" class="checkbox " type="checkbox" name="GUIREQProduct_5" title="Busse" />
</td>
<td>
<input id="prod_6" class="checkbox " type="checkbox" name="GUIREQProduct_6" title="Schiffe" />
</td>
<td>
<input id="prod_7" class="checkbox " type="checkbox" name="GUIREQProduct_7" title="U-Bahnen" />
</td>
<td>
<input id="prod_8" class="checkbox " type="checkbox" name="GUIREQProduct_8" title="Straßenbahnen" />
</td>
</tr>
</table>
</fieldset>
</div>
</div>
<p class="floatRight button-inside querybutton">
<span class="button-border">
<button type="submit" class="highlight" name="start" value="Suchen" title="Suchen" />
<span>Suchen</span>
</button>
</span>
</p>
<p class="button-inside clearfix querybutton">
<span class="button-border button-normal">
<a class="highlight" href="http://reiseauskunft.bahn.de/bin/bhftafel.exe/dn?ld=96248&rt=1&" title="Alle Eingaben löschen">Eingaben löschen</a>
</span>
</p>
</form>
</div>
<div class="shadowbottom"> </div>
<div class="shadowtop"> </div>
<div id="sqResult" class="hafasContent">
<h2>
<a class="arrowlink floatRight fontNormal" href="http://reiseauskunft.bahn.de/bin/bhftafel.exe/dn?ld=96248&rt=1&input=Saarbrücken Hbf%238000323&boardType=dep&time=actual&productsFilter=11111&start=yes">Aktualisieren</a>
<strong>Aktueller Abfahrtsplan von Saarbrücken Hbf um 10:24 Uhr</strong>
</h2>
<p>
</p>
<table class="result stboard dep">
<tr>
<th class="time">Zeit</th>
<th class="icon"> </th>
<th class="train">Zug</th>
<th class="route">Richtung / Unterwegshaltestellen</th>
<th class="platform">Gleis</th>
<th class="ris">Aktuelles</th>
</tr>
<tr class="browse">
<td class="time">
<a href="http://reiseauskunft.bahn.de/bin/bhftafel.exe/dn?ld=96248&rt=1&input=Saarbrücken Hbf%238000323&boardType=dep&time=10:24%2D60&productsFilter=11111&&&date=08.11.12&selectDate=&maxJourneys=&start=yes" class="arrowlink arrowlinktop">früher</a>
</td>
<td colspan="2" class="train"> </td>
<td class="route">
</td>
<td class="platform"> </td>
<td class="ris"> </td>
</tr>
<tr id="journeyRow_0" class="">
<td class="time">10:30</td>
<td class="train"><a href="http://reiseauskunft.bahn.de/bin/traininfo.exe/dn/858426/435608/752828/90272/80?ld=96248&rt=1&date=08.11.12&time=10:30&station_evaId=8000323&station_type=dep&"><img src="http://reiseauskunft.bahn.de/v/940/img/re_24x24.gif" class="middle" alt="" /></a></td><td class="train">
<a href="/bin/traininfo.exe/dn/858426/435608/752828/90272/80?ld=96248&rt=1&date=08.11.12&time=10:30&station_evaId=8000323&station_type=dep&">
RB 33723
</a>
</td>
<td class="route">
<span class="bold">
<a onclick="sHC(this, '', '8000176','11:09'); return false;" href="/bin/bhftafel.exe/dn?input=Homburg(Saar)Hbf%238000176&boardType=dep&time=11:09&productsFilter=11111&start=yes">
Homburg(Saar)Hbf
</a>
</span>
<br />
Saarbrücken Hbf
10:30
-
Saarbrücken Ost
10:33
-
Schafbrücke
10:35
-
Scheidt(Saar)
10:38
-
Rentrisch
10:40
-
St Ingbert
10:44
-
Rohrbach(Saar)
10:55
-
Kirkel
11:00
-
Limbach(b Homburg,Saar)
11:04
-
Homburg(Saar)Hbf
11:09
</td>
<td class="platform">
<strong>5</strong><br />
</td>
<td class="ris">
</td>
</tr>
<tr id="journeyRow_1" class="">
<td class="time">10:32</td>
<td class="train"><a href="http://reiseauskunft.bahn.de/bin/traininfo.exe/dn/736977/395140/201790/144764/80?ld=96248&rt=1&date=08.11.12&time=10:32&station_evaId=8000323&station_type=dep&"><img src="http://reiseauskunft.bahn.de/v/940/img/re_24x24.gif" class="middle" alt="" /></a></td><td class="train">
<a href="/bin/traininfo.exe/dn/736977/395140/201790/144764/80?ld=96248&rt=1&date=08.11.12&time=10:32&station_evaId=8000323&station_type=dep&">
RB 33722
</a>
</td>
<td class="route">
<span class="bold">
<a onclick="sHC(this, '', '8000134','12:00'); return false;" href="/bin/bhftafel.exe/dn?input=Trier Hbf%238000134&boardType=dep&time=12:00&productsFilter=11111&start=yes">
Trier Hbf
</a>
</span>
<br />
Saarbrücken Hbf
10:32
-
Saarbrücken-Burbach
10:34
-
Luisenthal(Saar)
10:39
-
Völklingen
10:42
-
Bous(Saar)
10:46
-
Ensdorf(Saar)
10:49
-
Saarlouis Hbf
10:52
-
Dillingen(Saar)
10:56
-
Beckingen(Saar)
11:00
-
Fremersdorf
11:03
-
Merzig(Saar)
11:06
-
Merzig(Saar) Stadtmitte
11:08
-
Besseringen
11:12
-
Mettlach
11:16
-
Saarhölzbach
11:19
-
Taben
11:24
-
Serrig
11:29
-
Saarburg(Bz Trier)
11:33
-
Schoden-Ockfen
11:37
-
Wiltingen(Saar)
11:40
-
Kanzem
11:43
-
Konz
11:48
-
Karthaus
11:50
-
Trier Süd
11:56
-
Trier Hbf
12:00
</td>
<td class="platform">
<strong>14</strong><br />
</td>
<td class="ris">
</td>
</tr>
<tr id="journeyRow_2" class="">
<td class="time">10:35</td>
<td class="train"><a href="http://reiseauskunft.bahn.de/bin/traininfo.exe/dn/650703/365972/620744/93471/80?ld=96248&rt=1&date=08.11.12&time=10:35&station_evaId=8000323&station_type=dep&"><img src="http://reiseauskunft.bahn.de/v/940/img/re_24x24.gif" class="middle" alt="" /></a></td><td class="train">
<a href="/bin/traininfo.exe/dn/650703/365972/620744/93471/80?ld=96248&rt=1&date=08.11.12&time=10:35&station_evaId=8000323&station_type=dep&">
RB 33625
</a>
</td>
<td class="route">
<span class="bold">
<a onclick="sHC(this, '', '8000154','11:58'); return false;" href="/bin/bhftafel.exe/dn?input=Türkismühle%238000154&boardType=dep&time=11:58&productsFilter=11111&start=yes">
Türkismühle
</a>
</span>
<br />
Saarbrücken Hbf
10:35
-
Jägersfreude
10:39
-
Dudweiler
10:41
-
Sulzbach(Saar)
10:44
-
Sulzbach(Saar)Altenwald
10:47
-
Friedrichsthal(Saar)
10:49
-
Friedrichsthal(Saar) Mitte
10:51
-
Bildstock
10:54
-
Landsweiler-Reden
10:57
-
Neunkirchen(Saar)Hbf
11:02
-
Wiebelskirchen
11:16
-
Ottweiler(Saar)
11:20
-
Niederlinxweiler
11:24
-
Oberlinxweiler
11:26
-
St Wendel
11:30
-
Baltersweiler
11:45
-
Hofeld
11:47
-
Namborn
11:50
-
Walhausen(Saar)
11:54
-
Türkismühle
11:58
</td>
<td class="platform">
<strong>8</strong><br />
</td>
<td class="ris">
</td>
</tr>
<tr class="current">
<td class="time">10:49</td>
<td class="train" colspan="2">aktuelle Uhrzeit</td>
<td class="route"> </td>
<td class="track"> </td>
<td class="ris"> </td>
</tr>
...
Nun möchte ich gerne die Links die mich zu den weiteren Informationen bringen. Welche Ansätze kann ich verfolgen um dies so umzusetzten. Sollte ich einen HTML Parser oder über RegularExpression die Links holen.
Welche HTML parser gitb es für Java?
Danke schonmal im vorraus.