Bonjour,
Je dois parser une page html pour en extraire certaines données, jusque la, tout va bien. Après avoir fais des recherches j'ai opté pour htmlparser qui me semblait être le plus simple et le plus efficace.
J'ai fait mon parser, avec mon nodeFilter, aucun problème, tout marche bien, j'ai put extraire mes données.
Mais après avoir fait un peu de profiling, je me suis rendu compte que l'opération prenait beaucoup (trop) de temps et que c'était la cause de la plupart des ralentissement de mon application.
Les conclusions que j'en ai tirés sont que le parser met trop de temps a parcourir toute la page (très longue) et a filtrer les node qui m'intéresse.
Donc je souhaiterais savoir si quelqu'un connaîtrais un moyen de stopper le parser lorsque l'information est trouvée ou un autre parser (peut être nekoHtml) qui serait plus efficace ou que je pourrais configurer pour que le parsage ne dure pas autant longtemps.
Je suis donc sous java 1.6 et voici le bout de code qui nous intéresse et que j'utilise actuellement:
merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 final Parser parser = new Parser(url.openConnection()) final TestsInfos infos = new TestsInfos(); final NodeList nl = parser.parse(new NodeFilter() { @Override public boolean accept(final Node node) { if (!(node instanceof TableRow)) { return false; } final TableRow row = (TableRow) node; if ("mon attribut".equals(row.getAttribute("class"))) { return true; } return false; } });
Partager