PARSER JAVA

OSSOUBB Messages postés 29 Date d'inscription samedi 7 mars 2009 Statut Membre Dernière intervention 28 avril 2011 - 11 nov. 2010 à 03:52
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 - 11 nov. 2010 à 10:31
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="&copy; 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.

1 réponse

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
11 nov. 2010 à 10:31
si ton html est bien formé, tu peux faire une recherche sur le parser XML SAX
0
Rejoignez-nous