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