Bonjour à tous je veux parser un fichier html en java, le fichier est issue d'un site web.
J'ai réussi à récupérer le fichier html avec les balise, mais je dois parser ce fichier afin d'y récupérer les données dont j'ai besoin.
Voici le fichier en question:
[<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd ">
, <html xmlns="
http://www.w3.org/1999/xhtml " xml:lang="fr-CA" lang="fr-CA">
, <head id="Head"><meta name="google-site-verification" content="RXT5LeYDirT3ZHmECr1hjXcCWlprU-punZfIqHmtuQM" /><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><meta id="MetaCopyright" name="COPYRIGHT" content="© Réseau de transport de la Capitale, Québec, Canada -" /><meta id="MetaAuthor" name="AUTHOR" content="RTC Québec" /><meta name="RESOURCE-TYPE" content="DOCUMENT" /><meta name="DISTRIBUTION" content="GLOBAL" /><meta name="ROBOTS" content="INDEX, FOLLOW" /><meta name="REVISIT-AFTER" content="1 DAYS" /><meta name="RATING" content="GENERAL" /><meta http-equiv="PAGE-ENTER" content="RevealTrans(Duration=0,Transition=1)" /><style id="StylePlaceholder" type="text/css"></style><link rel="icon" type="image/x-icon" href="/favicon.ico" /><link id="_DesktopModules_iFinity_GoogleAnalytics" rel="stylesheet" type="text/css" href="/DesktopModules/iFinity.GoogleAnalytics/module.css" /><link id="_Portals__default_" rel="stylesheet" type="text/css" href="/Portals/_default/default.css" /><link id="_Portals_0_Skins_RTC_" rel="stylesheet" type="text/css" href="/Portals/0/Skins/RTC/skin.css" /><link id="_Portals_0_" rel="stylesheet" type="text/css" href="/Portals/0/portal.css" /><title>
, RTC - Horaire à l'arrêt
, </title></head>
,
, <noscript>
</noscript>
, <form name="Form" method="post" action="/Horairesettrajets/Horairesettrajets/tabid/56/Default.aspx" id="Form" enctype="multipart/form-data" style="height: 100%;">
,
,
,
, <script src="/js/dnncore.js" type="text/javascript"></script>
,
,
,
,
Evitez la navigation
,
,
http://rtcquebec.ca/Default.aspx
,
,
Accueil
, </li>
,
, <li>
À propos du RTC
, </li>
,
, <li>
Emploi
, </li>
,
, <li>
Nous joindre
, </li>
,
, <li>
Mon RTC
, </li>
,
, <li>
Plan du site
, </li>
,
, <li>
FAQ
, </li>
,
,
,
,
, <!-- End_Module_381 -->
,
,
,
, <li id="section59">
,
Services </li> <li class="current" id="section54">
,
Horaires et trajets </li> <li id="section60">
,
Tarifs </li> <li id="section61">
,
Transport adapté </li> <li id="section63">
,
Service clientèle </li> <li id="section64">
,
Quoi de neuf? </li> <li id="section303">
,
Trajecto </li>
,
,
,
,
,
Horaires et trajets </li><li id="dnn_ctr398_ViewBMGMenu_rptLinks_ctl01_lnkItem">
Horaire à l'arrêt </li><li id="dnn_ctr398_ViewBMGMenu_rptLinks_ctl02_lnkItem">
Parcours par secteur </li><li id="dnn_ctr398_ViewBMGMenu_rptLinks_ctl03_lnkItem">
Service lors des jours fériés </li><li id="dnn_ctr398_ViewBMGMenu_rptLinks_ctl04_lnkItem">
Trajecto </li>
,
,
, <!-- End_Module_398 -->
,
,
Accueil >
Horaires et trajets > Horaire à l'arrêt
,
,
, Horaire à l'arrêt
,
,
, <script type="text/javascript">
, function clickButton(e, buttonid){
, var bt = document.getElementById(buttonid);
, if (typeof bt == 'object'){
, if(navigator.appName.indexOf("Netscape")!=(-1)){
, if (e.keyCode == 13){
, bt.click();
, return false;
, }
, }
, if (navigator.appName.indexOf("Microsoft Internet Explorer")!=(-1)){
, if (event.keyCode == 13){
, bt.click();
, return false;
, }
, }
, }
, }
,
, </script>
,
,
,
,
,
,
,
,
,
, Trouvez votre horaire à l'arrêt
,
,
,
, <label for="dnn_ctr525_ViewHoraireTrajet_ctl00_txtNoArret">
, Numéro d'arrêt :
, </label>
,
,
,
,
,
, Vous ne connaissez pas votre numéro d'arrêt?
,
,
, <label for="dnn_ctr525_ViewHoraireTrajet_ctl00_cboParcours">
, Trouvez-le avec le numéro de parcours :</label>
, <select name="dnn$ctr525$ViewHoraireTrajet$ctl00$cboParcours" id="dnn_ctr525_ViewHoraireTrajet_ctl00_cboParcours" onkeypress="return clickButton(event,'dnn_ctr525_ViewHoraireTrajet_ctl00_btnRechercheParcours')">
, <option value="1">1</option>
trouvé
, <option value="3">3</option>
trouvé
, <option value="4">4</option>
trouvé
, <option value="7">7</option>
trouvé
, <option value="9">9</option>
trouvé
, <option value="10">10</option>
trouvé
, <option value="11">11</option>
trouvé
, <option value="13">13</option>
trouvé
, <option value="14">14</option>
trouvé
, <option value="15">15</option>
trouvé
, <option value="16">16</option>
trouvé
, <option value="18">18</option>
trouvé
, <option value="22">22</option>
trouvé
, <option value="25">25</option>
trouvé
, <option value="28">28</option>
trouvé
, <option value="29">29</option>
trouvé
, <option value="31">31</option>
trouvé
, <option value="32">32</option>
trouvé
, <option value="33">33</option>
trouvé
, <option value="34">34</option>
trouvé
, <option value="36">36</option>
trouvé
, <option value="37">37</option>
trouvé
, <option value="39">39</option>
trouvé
, <option value="44">44</option>
trouvé
, <option value="50">50</option>
trouvé
, <option value="52">52</option>
trouvé
, <option value="53">53</option>
trouvé
, <option value="54">54</option>
trouvé
, <option value="55">55</option>
trouvé
, <option value="57">57</option>
trouvé
, <option value="58">58</option>
trouvé
, <option value="59">59</option>
trouvé
, <option value="60">60</option>
trouvé
, <option value="64">64</option>
trouvé
, <option value="65">65</option>
trouvé
, <option value="70">70</option>
trouvé
, <option value="72">72</option>
trouvé
, <option value="74">74</option>
trouvé
, <option value="75">75</option>
trouvé
, <option value="77">77</option>
trouvé
, <option value="78">78</option>
trouvé
, <option value="79">79</option>
trouvé
, <option value="80">80</option>
trouvé
, <option value="81">81</option>
trouvé
, <option value="82">82</option>
trouvé
, <option value="84">84</option>
trouvé
, <option value="85">85</option>
trouvé
, <option value="86">86</option>
trouvé
, <option value="87">87</option>
trouvé
, <option value="88">88</option>
trouvé
, <option value="89">89</option>
trouvé
, <option value="92">92</option>
trouvé
, <option value="93">93</option>
trouvé
, <option value="94">94</option>
trouvé
, <option value="95">95</option>
trouvé
, <option value="107">107</option>
trouvé
, <option value="111">111</option>
trouvé
, <option value="125">125</option>
trouvé
, <option value="133">133</option>
trouvé
, <option value="136">136</option>
trouvé
, <option value="185">185</option>
trouvé
, <option value="214">214</option>
trouvé
, <option value="215">215</option>
trouvé
, <option value="230">230</option>
trouvé
, <option value="236">236</option>
trouvé
, <option value="238">238</option>
trouvé
, <option value="239">239</option>
trouvé
, <option value="250">250</option>
trouvé
, <option value="251">251</option>
trouvé
, <option value="254">254</option>
trouvé
, <option value="255">255</option>
trouvé
, <option value="272">272</option>
trouvé
, <option value="273">273</option>
trouvé
, <option value="274">274</option>
trouvé
, <option value="277">277</option>
trouvé
, <option value="279">279</option>
trouvé
, <option value="280">280</option>
trouvé
, <option value="281">281</option>
trouvé
, <option value="282">282</option>
trouvé
, <option value="283">283</option>
trouvé
, <option value="284">284</option>
trouvé
, <option value="289">289</option>
trouvé
, <option value="290">290</option>
trouvé
, <option value="294">294</option>
trouvé
, <option value="295">295</option>
trouvé
, <option value="315">315</option>
trouvé
, <option value="330">330</option>
trouvé
, <option value="331">331</option>
trouvé
, <option value="332">332</option>
trouvé
, <option value="336">336</option>
trouvé
, <option value="337">337</option>
trouvé
, <option value="338">338</option>
trouvé
, <option value="350">350</option>
trouvé
, <option value="354">354</option>
trouvé
, <option value="355">355</option>
trouvé
, <option value="358">358</option>
trouvé
, <option value="372">372</option>
trouvé
, <option value="374">374</option>
trouvé
, <option value="377">377</option>
trouvé
, <option value="380">380</option>
trouvé
, <option value="381">381</option>
trouvé
, <option value="382">382</option>
trouvé
, <option value="384">384</option>
trouvé
, <option value="390">390</option>
trouvé
, <option value="391">391</option>
trouvé
, <option value="800">800</option>
trouvé
, <option value="801">801</option>
trouvé
, <option value="802">802</option>
trouvé
,
, </select>
,
,
,
, ou
,
, <label for="dnn_ctr525_ViewHoraireTrajet_ctl00_txtNomRue">
, Inscrivez le nom de la rue :</label>
,
,
,
, (Rue ou intersection de l'arrêt)
, <!--
,
, ou
,
,
, Trouvez-le avec la
, .
,
, -->
,
,
, <!--Fin du div parcours-->
,
,
, <!--
,
,
, -->
,
, <!-- End_Module_525 -->
,
,
,
,
Haut
,
,
,
,
,
, <!-- /CONTENU -->
,
,
,
,
, © Réseau de transport de la Capitale, Québec, Canada -
,
Politique d'accessibilité du site <!---->
,
,
,
,
,
,
,
, <script type='text/javascript' src='http://www.google-analytics.com/ga.js'></script>
, <script type='text/javascript'>
, var pageTracker = _gat._getTracker("UA-12800572-1");
, pageTracker._setSessionTimeout('1800');
, pageTracker._initData();
, pageTracker._trackPageview();
, </script>
, </form>
,
, </html>
voici le code que j'ai écrit pour avoir ce fichier html ci-dessous
import java.lang.Character.Subset;
import java.net.*;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Vector;
import java.io.*;
//import org.htmlparser.util.NodeList;
import org.w3c.dom.traversal.NodeFilter;
public class ParserRTC2
{
private static ArrayList listBus = new ArrayList();
private String inputLine ="";
private String ligneUrl ="";
public ParserRTC2(ArrayListmonBus )
{
this.listBus= monBus;
}
//Fonction qui parse le lien internet des
public void UrlRTC() throws IOException
{
//URL lien= new URL("
http://www.rtcquebec.ca/HoraireArret/Default.aspx?page=arret_bus_noarret&arret=1985 ");/*+ arret.get(j));*/
URL lien = new URL("
http://www.rtcquebec.ca/Horairesettrajets/Horairesettrajets/tabid/56/Default.aspx ");
BufferedReader in = new BufferedReader( new InputStreamReader(lien.openStream()));
FileHandler.create("..//projetRTC//Bus.html");
ArrayList<String> rp = new ArrayList <String>();
while ((inputLine = in.readLine())!= null)
{
ligneUrl+=rp.add(inputLine+"\r\n");
}
FileHandler.write("..//projetRTC//Bus.html",rp.toString());
//FileHandler.readAllFile(rp.toString());
//NodeList list = new NodeList ();
//NodeFilter filter =
}
public ParserRTC2 parsURL(String ligneUrl)
{
String uneLigne= "";
Iterator<String>monFichier;
ArrayList<String>list = new ArrayList<String>();
monFichier=FileHandler.readAllFile(ligneUrl);
int i=0;
String mRtc="";
while(monFichier.hasNext())
{
uneLigne=monFichier.next();
System.out.println(uneLigne);
list.add(uneLigne);
if(uneLigne.contains("<option value="))
{
System.out.println("trouvé");
}
}
System.out.println(list.toString());
return new ParserRTC2(listBus);
}
public static void main(String[]args) throws Exception
{
ParserRTC2 bus = new ParserRTC2(listBus);
bus.UrlRTC();
//bus.parserURL();
bus.parsURL("..//projetRTC//Bus.html");
}
}
J'ai penser à utiliser le html parser mais je ne savais pas comment l'inserer dans mon code afin de récupérer les données.
Je dois récupérer par exemple 372 dans la balises <option value="372"> et ainsi de suite.
Merci de m'aider, j'ai été un peu long mais en tout cas c'est pour être plus clair.
Afficher la suite