Bonjour, voici donc mon problème :
je dois décortiqué par exemple ce code html :
en fait, c'est le code produit par megaupload, car je cherche à récupérer le titre d'un fichier à partir de l'url.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <div class="download_file_name"> titre du fichier.zip </div> <div class="fm_files_icon_avi"></div> <div class="download_file_size"> 202.57 MB </div>
donc j'ai fais ce script :
seulement ça me donne ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 String result = Framework.fileGetContents("http://www.megaupload.com?d=xxxxxx"); if(result.matches(".*<div class=\"na_text\"> Invalid link </div>.*")){ System.out.println("lien invalide"); }else{ if(!result.matches(".*www\\.megaupload\\.com/\\?c=msg.*")){ filename = result.replaceFirst(".*<div class=\"download_file_name\">(.+)</div><div class=\"fm.*", "$1"); System.out.println(filename); }else{ System.out.println("Nb de requête max atteint !"); System.exit(0); } }
titre du fichier .zip ... et tout le reste du code derrière ... </html>
bon alors je connais le pb, du moins en PHP, pour éviter ça on met la regex en "mode économique" grâce à une option.
En fait, il faut lui dire de s'arrêter au premier masque trouvé !
mais je n'arrive pas à trouver comment faire en java ... (je suis très mauvais dans les regex en java )
au passage, je me demande si ce n'est pas un peu du bricolé ma manière de vérifier la validité d'une url mega upload ...
mais je ne vois pas comment faire d'autre.
d'ailleurs megaupload a changer de design il y a peu et jdownloader à immédiatement publié une nouvelle version, sans doute parce que jdownloader utilise la même technique ...
merci d'avance.
Partager