Question
telecharger la cible d'une redirection
- Gerne cyril
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 15
- Remerciements reçus 0
il y a 14 ans 9 mois #9816
par Gerne cyril
telecharger la cible d'une redirection a été créé par Gerne cyril
bonjour a tous!
mon problème est quelque peu difficile à présenter alors soyez indulgent svp!
je suis entrain de coder un script permettant de télécharger automatiquement la dernière version de java proposée sur le site officiel
j'en suis là:
[code:1]$nom =[Environment]::UserName
# site de téléchargement de java
$urldownload = \"www.java.com/fr/download/windows_xpi.jsp?locale=fr\"
# on télécharge le contenu de la page en string puis après avoir \"splité\" aux bons endroits on peux récupérer l'url qui redirige vers le téléchargement
# je procède ainsi car le site questionne le client sur sa config, OS, la version installée... et propose la bonne version en fonction de ces infos
# je stocke l'url recherchée dans $url
$WebClient = New-Object System.Net.WebClient
$Results = $WebClient.DownloadString($urldownload)
$T = @($Results.split('\"'))
$regex =\"^http://javadl.sun.com/webapps/download/AutoDL\?BundleId=(\d{1,6})$\"
foreach($myvar in $T)
{
if ($myvar -match $regex -eq $true)
{
$url = $myvar
}
}
# navigation sur la page qui ouvre la fenêtre de téléchargement de la bonne version
(New-Object -Com Shell.Application).Open(\"$url\"«»)[/code:1]
Mon soucis ce trouve là: je me contente d'une navigation et non d'un téléchargement à partir de la console; je ne peux pas utiliser de méthode \".download\" car mon url ne cible pas directement le fichier voulu (voir $regex dans mon code), l'url interroge surement un serveur et me redirige sur une autre page (dont l'url n'a rien a voir)qui ouvre une fenêtre me proposant de lancer le téléchargement ce qui nécessite un clic de souris
je veux automatiser cette action...
j'espère avoir été suffisamment explicite
avez-vous si il vous plait une piste ou un tuyau?
mon problème est quelque peu difficile à présenter alors soyez indulgent svp!
je suis entrain de coder un script permettant de télécharger automatiquement la dernière version de java proposée sur le site officiel
j'en suis là:
[code:1]$nom =[Environment]::UserName
# site de téléchargement de java
$urldownload = \"www.java.com/fr/download/windows_xpi.jsp?locale=fr\"
# on télécharge le contenu de la page en string puis après avoir \"splité\" aux bons endroits on peux récupérer l'url qui redirige vers le téléchargement
# je procède ainsi car le site questionne le client sur sa config, OS, la version installée... et propose la bonne version en fonction de ces infos
# je stocke l'url recherchée dans $url
$WebClient = New-Object System.Net.WebClient
$Results = $WebClient.DownloadString($urldownload)
$T = @($Results.split('\"'))
$regex =\"^http://javadl.sun.com/webapps/download/AutoDL\?BundleId=(\d{1,6})$\"
foreach($myvar in $T)
{
if ($myvar -match $regex -eq $true)
{
$url = $myvar
}
}
# navigation sur la page qui ouvre la fenêtre de téléchargement de la bonne version
(New-Object -Com Shell.Application).Open(\"$url\"«»)[/code:1]
Mon soucis ce trouve là: je me contente d'une navigation et non d'un téléchargement à partir de la console; je ne peux pas utiliser de méthode \".download\" car mon url ne cible pas directement le fichier voulu (voir $regex dans mon code), l'url interroge surement un serveur et me redirige sur une autre page (dont l'url n'a rien a voir)qui ouvre une fenêtre me proposant de lancer le téléchargement ce qui nécessite un clic de souris
je veux automatiser cette action...
j'espère avoir été suffisamment explicite
avez-vous si il vous plait une piste ou un tuyau?
Connexion ou Créer un compte pour participer à la conversation.
- Matthew BETTON
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 968
- Remerciements reçus 0
il y a 14 ans 8 mois #9862
par Matthew BETTON
Réponse de Matthew BETTON sur le sujet Re:telecharger la cible d'une redirection
Bonjour,
Un tuyau :
[code:1]$WebClient = New-Object System.Net.WebClient
try{
$WebClient.DownloadFile($DLUrl, $LocalFile)
}
catch{
Write-Error \"An error has occured while downloading '$DLUrl' : $($_.exception.Message)\"
}
finally{
$WebClient.Dispose()
}[/code:1]
... où '$DlUrl' correspond à une URL de téléchargement et '$LocalFile' le chemin local complet du fichier téléchargé.
Plus d'informations sur la classe WebClient ici .<br><br>Message édité par: Matthew BETTON, à: 2/07/11 15:33
Un tuyau :
[code:1]$WebClient = New-Object System.Net.WebClient
try{
$WebClient.DownloadFile($DLUrl, $LocalFile)
}
catch{
Write-Error \"An error has occured while downloading '$DLUrl' : $($_.exception.Message)\"
}
finally{
$WebClient.Dispose()
}[/code:1]
... où '$DlUrl' correspond à une URL de téléchargement et '$LocalFile' le chemin local complet du fichier téléchargé.
Plus d'informations sur la classe WebClient ici .<br><br>Message édité par: Matthew BETTON, à: 2/07/11 15:33
Connexion ou Créer un compte pour participer à la conversation.
- Matthew BETTON
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 968
- Remerciements reçus 0
il y a 14 ans 8 mois #9863
par Matthew BETTON
Réponse de Matthew BETTON sur le sujet Re:telecharger la cible d'une redirection
Je viens de faire le test et cela fonctionne (pas de souci de redirection, le fichier est bien récupéré) :
[code:1]Function Download([String]$DLUrl, [String]$LocalFile){
try{
$WebClient.DownloadFile($DLUrl, $LocalFile)
}
catch{
Write-Error \"An error has occured while downloading '$DLUrl' : $($_.exception.Message)\"
}
}
$urldownload = \"www.java.com/fr/download/windows_xpi.jsp?locale=fr\"
$WebClient = New-Object System.Net.WebClient
$Results = $WebClient.DownloadString($urldownload)
$T = @($Results.split('\"'))
$regex =\"^http://javadl.sun.com/webapps/download/AutoDL\?BundleId=(\d{1,6})$\"
foreach($myvar in $T)
{
if ($myvar -match $regex -eq $true)
{
Download $myvar \"d:\jspiinstall.exe\"
}
}
$WebClient.Dispose()[/code:1]<br><br>Message édité par: Matthew BETTON, à: 2/07/11 15:30
[code:1]Function Download([String]$DLUrl, [String]$LocalFile){
try{
$WebClient.DownloadFile($DLUrl, $LocalFile)
}
catch{
Write-Error \"An error has occured while downloading '$DLUrl' : $($_.exception.Message)\"
}
}
$urldownload = \"www.java.com/fr/download/windows_xpi.jsp?locale=fr\"
$WebClient = New-Object System.Net.WebClient
$Results = $WebClient.DownloadString($urldownload)
$T = @($Results.split('\"'))
$regex =\"^http://javadl.sun.com/webapps/download/AutoDL\?BundleId=(\d{1,6})$\"
foreach($myvar in $T)
{
if ($myvar -match $regex -eq $true)
{
Download $myvar \"d:\jspiinstall.exe\"
}
}
$WebClient.Dispose()[/code:1]<br><br>Message édité par: Matthew BETTON, à: 2/07/11 15:30
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.038 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- telecharger la cible d'une redirection