Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Télécharger une page Web | |
| | Auteur | Message |
---|
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Télécharger une page Web Lun 5 Nov 2012 - 17:04 | |
| Pour consultation ou autres usages en local (analyses, recherches.... On peut télécharger n'importe quoi, à condition que l'adresse URL donnée soit celle d'un nom de fichier, et seul le texte est récupéré (pas d'images...). Il s'agit ici, en l'occurence, du manuel Panoramic récupéré sur: http://panoramic-language.pagesperso-orange.fr/French/HELP_MAIN.htmLe téléchargement est fait à partir d'un script vbs intégré au programme (donc pas de ressources externes, le programme se suffit à lui-même). Le téléchargement est assez long (par exemple chez moi environ 1/4 d'heure pour un fichier qui fait 323k). A la fin je lance la lecture du fichier récupéré (qui se fera dans le navigateur utilisé). Ensuite, en local, on peut imaginer des programmes d'analyse, de recherche de mots-clés, de conversion dans d'autres formats, etc. Le programme n'est pas très long (40 lignes), l'essentiel étant pris par le script vbs. Et je n'ai pas mis de commentaires dans le script lui-même, pour ne pas encombrer. - Code:
-
DIM URL$, frec$, fscr$, gui$, a$ ' Cible à charger: DOIT être un nom de fichier: URL$ = "http://panoramic-language.pagesperso-orange.fr/French/HELP_MAIN.htm" frec$ = "C:\Pano_Manuel.htm": ' fichier résultat fscr$ = "C:\Temp\Scrdnl.vbs": ' script vbs gui$ = CHR$(34)
DATA "Debscr" DATA "HTTPDownload "+CHR$(34)+URL$+CHR$(34)+", "+CHR$(34)+frec$+CHR$(34) DATA "Sub HTTPDownload( URL, Path )" DATA "Dim i, objFile, objFSO, objHTTP, strFile, strMsg" DATA "Const ForReading = 1, ForWriting = 2, ForAppending = 8" DATA "Set objFSO = CreateObject( "+gui$+"Scripting.FileSystemObject"+gui$+" )" DATA "strFile = Path" DATA "Set objFile = objFSO.OpenTextFile( strFile, ForWriting, True )" DATA "Set objHTTP = CreateObject( "+gui$+"WinHttp.WinHttpRequest.5.1"+gui$+" )" DATA "objHTTP.Open "+gui$+"GET"+gui$+", URL, False" DATA "objHTTP.Send" DATA "For i = 1 To LenB( objHTTP.ResponseBody )" DATA " objFile.Write Chr( AscB( MidB( objHTTP.ResponseBody, i, 1 ) ) )" DATA "Next" DATA "objFile.Close( )" DATA "End Sub" DATA "Finscr" RESTORE READ a$ WHILE a$ <> "Debscr": READ a$: END_WHILE FILE_OPEN_WRITE 1, fscr$ READ a$ WHILE a$ <> "Finscr" FILE_WRITELN 1, a$ READ a$ END_WHILE FILE_CLOSE 1 PRINT TIME$ + " Téléchargement en cours..." EXECUTE_WAIT "WSCRIPT.exe " + fscr$: ' exécution du script PRINT TIME$ + " Terminé: " + frec$ FILE_DELETE fscr$: ' nettoyage EXECUTE_WAIT frec$: ' lecture du fichier récupéré END | |
| | | sergeauze
Nombre de messages : 391 Age : 72 Localisation : Hautes Alpes France Date d'inscription : 09/01/2010
| Sujet: Re: Télécharger une page Web Lun 5 Nov 2012 - 19:17 | |
| salut Ca prend 3 mm et 10 secondes chez moi et ça fonctionne sans pb | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Télécharger une page Web Lun 5 Nov 2012 - 19:33 | |
| essaie de faire ce que je fais dans mon programme ebay_ventes. Je force un control/A puis control/C sur la page web affichée, puis je place le contenu texte du presse-papier dans une variable? Cela prend même pas une seconde. Voici un extrait du code: - Code:
-
************* variables spécifiques dim id_browser$ : id_browser$ = " - Mozilla Firefox" dim hnd%, s$
************* le code pour prendre une page get_browser() get_page_text() s$ = clipboard_string_paste$
************* les procédures sub get_browser() s$ = id_browser$ GetWindowByTitle(1,s$) hnd% = GetWindowByTitle% BringWindowToForeground(hnd%)
s$ = string$(255," ") GetActiveWindowTitle() s$ = GetActiveWindowTitle$ s$ = trim$(s$) end_sub
sub get_page_text() s$ = chr$(9)+chr$(9)+chr$(9)+chr$(9)+chr$(9)+chr$(9)+chr$(9)+chr$(9)+chr$(9) SendStringAsChars(hnd%,s$) s$ = chr$(1) SendStringAsText(hnd%,s$) pause 300 s$ = chr$(3) SendStringAsText(hnd%,s$) CopyToClipboard(hnd%) end_sub
| |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Télécharger une page Web Lun 5 Nov 2012 - 19:34 | |
| Marche nickel 2:32 pour moi | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Télécharger une page Web Lun 5 Nov 2012 - 20:12 | |
| Oui je sais Klaus, ton moyen est bien plus rapide, mais manuel, et je voulais le faire par programme, pour éventuellement automatiser des mises à jour et des opérations d'analyse dans le fichier résultat... Je crois comprendre qu'avec ton code il faut être connecté, avec la page en question affichée à l'écran. Et il y a plein d'appels à des Dlls externes...
@ sergeauze et Jicehel, la durée doit dépendre fortement de l'heure à laquelle on le lance, suivant l'encombrement du réseau (et la qualité de sa connexion). En tout cas, merci d'avoir essayé. PS je viens de réessayer: 2:10 | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Télécharger une page Web Lun 5 Nov 2012 - 21:09 | |
| Pourquoi tu dis que c'est manuel ? Lance ton adresse URL par EXECUTE, puis récupère le contenu affiché par ce code. Tout peut être entièrement automatisé.
Dans mon programme ebay_ventes.bas, je pars évidemment de pages ebay affichées. Mais rien ne t'interdit de lancer pa page toi-même. Je fais cela d'ailleurs dans mon programme de login paramétré sur des sites comme MyDrive ou d'autres. Je charge la page adéquate, j'attends qu'elle soit affichée, puis je fais le travail. La première partie du programme de connexion et la partie de récupération citée ici, peuvent parfaitement être combinées. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Télécharger une page Web Lun 5 Nov 2012 - 21:17 | |
| Certes, mais ce n'est pas transparent, il faut quand même lancer la connexion et afficher la page à l'écran, non ? Et puis comme je disais, il y a tous ces appels à dlls qui me gênent un peu, à choisir si je peux faire sans je préfère, c'est plus autonome.
| |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Télécharger une page Web Lun 5 Nov 2012 - 21:30 | |
| | |
| | | pan59
Nombre de messages : 367 Age : 67 Localisation : Wattignies Date d'inscription : 16/10/2011
| Sujet: récupération d'une page web. Mar 6 Nov 2012 - 8:10 | |
| Bonjour.
1m25 s chez moi, et ça marche super ! | |
| | | Contenu sponsorisé
| Sujet: Re: Télécharger une page Web | |
| |
| | | | Télécharger une page Web | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |