Comment extraire des liens de n'importe quelle page Web à l'aide de PowerShell
PowerShell 3 comporte de nombreuses nouvelles fonctionnalités, notamment de nouvelles fonctionnalités puissantes liées au Web. Ils simplifient considérablement l'automatisation du Web et nous allons vous montrer comment extraire chaque lien d'une page Web et éventuellement télécharger la ressource si vous le souhaitez..
Gratter le Web avec PowerShell
Deux nouvelles applets de commande facilitent l'automatisation Web, Invoke-WebRequest, qui facilite l'analyse du contenu lisible par l'homme, et Invoke-RestMethod, qui facilite la lecture du contenu lisible par machine. Puisque les liens font partie du code HTML d'une page, ils font partie du contenu lisible par l'homme. Pour obtenir une page Web, il suffit d'utiliser Invoke-WebRequest et de lui attribuer une URL..
Invoke-WebRequest -Uri 'http://howtogeek.com'
Si vous faites défiler l'écran vers le bas, vous verrez que la réponse a une propriété links, nous pouvons utiliser la nouvelle fonctionnalité d'énumération de membres de PowerShell 3 pour les filtrer..
(Invoke-WebRequest -Uri 'http://howtogeek.com') .Liens
Comme vous pouvez le constater, beaucoup de liens vous sont renvoyés. Vous devez utiliser votre imagination pour trouver quelque chose d'unique qui vous permettra de filtrer les liens que vous recherchez. Supposons que nous voulions une liste de tous les articles de la première page..
((Invoke-WebRequest -Uri 'http://howtogeek.com'). .Links | Where-Object $ _. Href -like “http *” | Where class -eq “title”). Titre
L'autre chose à faire avec les nouvelles applets de commande est l'automatisation des téléchargements quotidiens. Voyons comment effacer automatiquement l'image de la journée de congé du site Web de Nat Geo. Pour ce faire, nous allons combiner les nouvelles applets de commande Web avec Start-BitsTransfer..
$ IOTD = ((Invoke-WebRequest -Uri 'http://photography.nationalgeographic.com/photography/photo-of-the-day/').Links | Où innerHTML-like "* Télécharger le fond d'écran *"). Href
Start-BitsTransfer -Source $ IOTD -Destination C: \ IOTD \
C'est tout ce qu'on peut en dire. Avez-vous des astuces propres? Faites le nous savoir dans les commentaires.