Hallo Community,
basierend auf einem Skript von Sapien habe ich euch mal die Weihnachten-Bücher-Wunschliste vorbereitet ;-)
Direktes Suchen als RSS-Feed geht bei Amazon nur begrenzt. Deshalb der Umweg über eine Suchmaschine.
Der Zugriff auf die einzelnen Elemente erfolgt über
$Wunschliste[0] # zeigt das erste Buch an
$Wunschliste[0].Titel # Zeigt den Titel des ersten Buchs an
$Wunschliste[0].open() # öffnet über den IE den Link zum Titel
Das ist zwar schon eine etwas ältere Funktion, aber sie zeigt eindrucksvoll die Flexibilität der Sprache.
$client zeigt den Zugriff auf native .NET Funktionalitäten
[xml]$results zeigt die Verwendung einer Typzuweisung kombiniert mit einem Webzugriff.
Die Daten kommen als RSS Feed zurück und werden als XML Daten gespeichert.
$channel zeigt die XML Verarbeitung
$result zeigt die generische Objektverwendung mit Attribut- sowie Methodenzuweisung und Skriptblockverwendung ($sb)
Alles in Allem eine coole Funktion.
Happy scripting
Rolf
Function Get-PSBooks {
param([string]$searchstring = $(throw "Bitte Suchstring eingeben."))
$client = New-Object System.Net.WebClient
[xml]$results = $client.DownloadString("http://search.live.com/results.aspx?q=" + $searchstring + "&format=rss")
$channel = $results.rss.channel
foreach ($item in $channel.item) {
$result = New-Object PSObject
$result | Add-Member NoteProperty Titel -value $item.title
$result | Add-Member NoteProperty Link -value $item.link
$result | Add-Member NoteProperty Beschreibung -value $item.description
$result | Add-Member NoteProperty VeröffentlichtAm -value $item.pubdate
$sb = {
$ie = New-Object -com internetexplorer.application
$ie.navigate($this.link)
$ie.visible = $true
}
$result | Add-Member ScriptMethod Open -value $sb
$result
}
}
. Get-SearchResults "amazon.de +bücher +powershell"
$Wunschliste = . Get-PSBooks '"amazon.de" bücher "windows powershell"'
$Wunschliste