Récupérer les liens d'une page web "github"

Résolu/Fermé
little boy62 Messages postés 3584 Date d'inscription lundi 11 novembre 2013 Statut Membre Dernière intervention 15 avril 2024 - 19 déc. 2019 à 11:27
little boy62 Messages postés 3584 Date d'inscription lundi 11 novembre 2013 Statut Membre Dernière intervention 15 avril 2024 - 19 déc. 2019 à 11:44
Bonjour à toutes et à tous. :=)

Depuis peu, je me suis lancé dans la programmation "powershell"...
Pour info, je programme en amateur en AutoIt depuis un moment...

Et comme projet personnel, je cherche donc à télécharger les dernières versions de logiciel, dans le cas d'un formatage par exemple.

Ce que j'arrive à faire en AutoIt.


Un exemple de script powershell qui fonctionne :
$lien = 'https://www.ccleaner.com/fr-fr/ccleaner/download/standard'
$lien = ((Invoke-WebRequest -Uri $lien).Links | Where-Object {$_.href -like '*.exe'}).href

$dossier = $env:bureau+'\Mes Logiciels'
$Fichier = $dossier+'\CCleaner.exe'

if ( Test-Path -Path $fichier ) { Remove-Item -Path $Fichier }
if ( -not ( Test-Path -Path $dossier)) { mkdir -Path $dossier }

Invoke-WebRequest -Uri $lien -OutFile $fichier
Start-Process -FilePath $dossier


par contre :
- Ce script fonctionne :
$lien = 'https://www.ccleaner.com/fr-fr/ccleaner/download/standard'
$lien = ((Invoke-WebRequest -Uri $lien).Links).href
echo $lien


- Mais ce script ne fonctionne pas :
$lien = 'https://github.com/da2x/EdgeDeflector'
$lien = ((Invoke-WebRequest -Uri $lien).Links).href
echo $lien


Le script ne s'arrête pas.
Je peux laisser 30min, sans rien avoir.

Comment faire pour que powershell et "github" communique ?

Je pense qu'il y a une protection (referer peut-être), mais je sais pas comment y remédier.


Merci de m'aiguiller.

@++


Configuration: Windows / Firefox 71.0

1 réponse

little boy62 Messages postés 3584 Date d'inscription lundi 11 novembre 2013 Statut Membre Dernière intervention 15 avril 2024 1 757
19 déc. 2019 à 11:44
(Re)Salut. ^^

Bon, ben... j'ai trouvé ^^


Grace à iwr... Remplacé par Invoke-WebRequest...


Je suis tombé sur ce lien :
https://stackoverflow.com/questions/27944884/can-powershell-be-used-to-list-the-contents-of-a-url-directory

Et une personne a pondu un script, avec la commande iwr...
Et surtout avec un paramètre... -UseBasicParsing

Ceci fonctionne avec un lien github.
Donc, je me suis dis : et si j'utilisai ce même paramètre, mais avec Invoke-WebRequest...

Et... ça fonctionne.


Donc je passe en résolu...

Le script fonctionne avec lien Github...
$lien = 'https://github.com/da2x/EdgeDeflector/releases' 
$lien = ((Invoke-WebRequest -UseBasicParsing -Uri $lien).Links | Where-Object {$_.href -like '*.exe'}).href
echo $lien


Conclusion personnelle : autant mettre ce paramètre systématiquement. ^^


++
1