információk beszerzése weboldalakról a Powershell segítségével
sok esetben a szükséges információ elérhető egy vagy több weboldalon, de ugyanazt az információt többször kell feldolgoznunk. Egy ilyen ismétlődő feladat Powershell-en keresztüli automatizálásához HTML adatokat kell olvasnunk és elemeznünk. Például egy kérdést nemrégiben tettek fel a Microsoft 2010 Sharepoint fórumára:
szeretem, hogy a SharePoint 2010 az oldal: http://Server:880/_admin/PatchStatus.aspx. Ezen az oldalon azonban minden szerver körülbelül 100 javítással rendelkezik. A lista görgetése nehéz látni, hogy az egyik szerverről hiányzik-e javítás, vagy vannak-e olyan javítások, amelyeket más szerverek nem. Van-e mód az információk exportálására a Patchstatuson.aspx oldal a központi Adminisztrátorban egy excel táblázatba?
ennek a gyakorlatnak a céljából tegyük fel, hogy szeretnénk megkapni a hozzászólások címét ebben az URL-ben https://superwidgets.wordpress.com/category/sql
először olvassuk el az oldal HTML kódját:
most nézzük cső, hogy kap-tag, hogy milyen objektum van, és a rendelkezésre álló módszerek és tulajdonságok:
miután megvizsgáltuk a $HTML objektum különböző tulajdonságait, és némi háttér HTML ismerettel meg tudjuk mondani, hogy a keresett információ a HTML testben található.
a fenti technikával a HTML objektum további tulajdonságait is felfedezhetjük, mint például a “ParsedHTML”
$HTML.ParsedHtml / Get-Member
ez azt mutatja, hogy ez egy HTMLDocumentClass objektum, amely rengeteg eseményt, metódust és tulajdonságot tartalmaz:

a HTMLDocumentClass objektumesemények, módszerek és tulajdonságok részleges listája
a következő 3 módszer hasznos számunkra:
getElementById
getElementsByName
getElementsByTagName
most, hogy tudjuk, hogyan kell kibontani a szükséges információkat egy weboldalról, nézzük meg a kéznél lévő weboldal sajátosságait https://superwidgets.wordpress.com/category/sql. Nyissa meg például az IE-ben, nyomja meg az F12 billentyűt az alsó DOM explorer megnyitásához, bontsa ki a HTML-címkéket, és mozgassa az egeret a címkék fölé. Figyelje meg, hogy a felső IE ablaktábla megváltoztatja annak az elemnek a háttérszínét, amelyen az egeret mozgatja. Ez vizuálisan jelzi, hogy a HTML-kód melyik eleme képviseli a HTML-oldal melyik szövegét vagy területét.
láthatjuk a cikk címei vagyunk érdekeltek az is, hogy kezdődik
<h2 class = “bejegyzés-cím”>
most a következő néhány sor Powershell szkriptkódot írhatjuk a feladat elvégzéséhez:
# Script megjelenítéséhez utáni címeket az SQL Categroy a Superwidgets blog
# Sam Boutros-08/10/2014
$URI = “https://superwidgets.wordpress.com/category/sql/ “
$HTML = Invoke-WebRequest-Uri $URI
($HTML.Lttmml.getElementsByTagName (‘h2’) / ahol{ $_.osztálynév-eq ‘bejegyzés-cím’ } ).innerText
az 5.sorban a HTML elemeket a “H2” címkével választjuk ki, szűrjük a ClassName = “entry-title” elemre, majd válasszuk az innertext tulajdonságot.
a kimenet így néz ki:
ami pontosan az a cikk címe, amelyet meg akarunk kapni.
ez az információ Tovább Feldolgozható, naplózható, tárolható vagy újracsomagolható más HTML, CSV vagy más jelentésekben..