Extrahieren von Links von Webseiten mit PowerShell
In PowerShell 3 gibt es viele neue Funktionen, einschließlich einiger leistungsfähiger neuer Funktionen für das Web. Sie vereinfachen die Automatisierung des Webs erheblich. Heute zeigen wir Ihnen, wie Sie jeden einzelnen Link von einer Webseite extrahieren und optional die Ressource herunterladen können, wenn Sie dies wünschen.
Mit PowerShell das Web kratzen
Es gibt zwei neue Cmdlets, die die Automatisierung des Webs vereinfachen, Invoke-WebRequest, die das Analysieren von für Menschen lesbaren Inhalten vereinfacht, und Invoke-RestMethod, wodurch das Lesen von maschinenlesbaren Inhalten vereinfacht wird. Da Links Teil des HTML-Codes einer Seite sind, sind sie Teil der für Menschen lesbaren Inhalte. Um eine Webseite zu erhalten, müssen Sie nur Invoke-WebRequest verwenden und eine URL angeben.
Invoke-WebRequest -Uri "http://howtogeek.com"
Wenn Sie einen Bildlauf nach unten durchführen, werden Sie feststellen, dass die Antwort eine Links-Eigenschaft hat. Wir können die neue Member-Enumeration-Funktion von PowerShell 3 verwenden, um diese herauszufiltern.
(Invoke-WebRequest -Uri 'http://howtogeek.com') .Links
Wie Sie sehen, erhalten Sie viele Links zurück. Hier müssen Sie Ihrer Fantasie nach etwas Einzigartigem suchen, um die gewünschten Links herauszufiltern. Nehmen wir an, wir möchten eine Liste aller Artikel auf der Startseite.
((Invoke-WebRequest -Uri "http://howtogeek.com") .Links | Where-Object $ _. Href-like "http *" | Where-Klasse -eq "title"). Title
Eine weitere großartige Sache, die Sie mit den neuen Cmdlets ausführen können, ist das Automatisieren der täglichen Downloads. Schauen wir uns das Bild des Tages automatisch von der Nat Geo-Website an. Dazu kombinieren wir die neuen Web-Cmdlets mit Start-BitsTransfer.
$ IOTD = ((Invoke-WebRequest -Uri 'http://photography.nationalgeographic.com/photography/photo-of-the-day/' ).Links | Where innerHTML-like "* Download Wallpaper *"). Href
Start-BitsTransfer -Quelle $ IOTD -Ziel C: \ IOTD \
Das ist alles dazu. Hast du irgendwelche hübschen Tricks? Lass es uns in den Kommentaren wissen.