olvassa el a HTML-t a Powershell segítségével. Powershell / Sam ‘ s Corner

információk beszerzése weboldalakról a Powershell segítségével

PS1 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:

HTML2

most nézzük cső, hogy kap-tag, hogy milyen objektum van, és a rendelkezésre álló módszerek és tulajdonságok:

HTML3

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:

 HTML7

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.

 HTML6

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:

 HTML8

# 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:

HTML9

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..

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.