přečtěte si HTML přes Powershell. Powershell / Sam ‚ S Corner

získávání informací z webových stránek přes Powershell

PS1v mnoha případech jsou potřebné informace k dispozici na jedné nebo mnoha webových stránkách, ale stejné informace musíme zpracovávat opakovaně. Pro automatizaci takového opakovaného úkolu pomocí Powershell musíme číst a analyzovat data HTML. Například otázka byla nedávno zveřejněna na fóru Microsoft 2010 Sharepoint forum:

miluji, Jak SharePoint 2010 má stránku: http://Server:880/_admin/PatchStatus.aspx. Při pohledu na tuto stránku má však každý server asi 100 oprav. Při procházení tímto seznamem je obtížné zjistit, zda některému ze serverů chybí oprava nebo má záplaty, které jiné servery nemají. Existuje způsob, jak exportovat informace o PatchStatus.stránka aspx v centrálním administrátorovi do tabulky aplikace excel?

pro účely tohoto cvičení řekněme, že chceme získat názvy příspěvků v této adrese URL https://superwidgets.wordpress.com/category/sql

nejprve si přečtěte HTML kód této stránky:

HTML2

Nyní, pojďme potrubí, které se dostat-člen vidět, jaký druh objektu máme a jeho dostupné metody a vlastnosti:

HTML5

po prozkoumání různých vlastností objektu $ HTML, který máme, a s některými znalostmi HTML na pozadí můžete zjistit, že informace, které hledáme, jsou v těle HTML.

pomocí stejné techniky výše, můžeme prozkoumat další vlastnosti objektu HTML jako „ParsedHTML“

$HTML.ParsedHtml / Get-Member

to ukazuje, že se jedná o objekt HTMLDocumentClass s hromadou událostí, metod a vlastností:

HTML7

částečný seznam událostí, metod a vlastností objektu HTMLDocumentClass

co je pro nás užitečné, jsou následující 3 metody:

getElementById
getElementsByName
getElementsByTagName

Nyní, když víme, jak extrahovat informace, které potřebujeme z webové stránky, podívejme se na specifika webové stránky po ruce https://superwidgets.wordpress.com/category/sql. Otevřete jej například v IE, stisknutím klávesy F12 otevřete Průzkumník DOM v dolní části, rozbalte značky HTML a přesuňte kurzor myši nad značky jeden po druhém. Všimněte si, že horní panel IE mění barvu pozadí prvku, na který pohybujete myší. To nám dává vizuální indikaci toho, který prvek v kódu HTML představuje, který text nebo oblast stránky HTML.

HTML5

můžete vidět názvy článků, které nás zajímají, jsou ty, které začínají

<h2 class = „entry-title“>

nyní můžeme napsat několik následujících řádků kódu skriptu Powershell k dokončení úkolu:

HTML8

# skript pro zobrazení post tituly v SQL Categroy Superwidgets blogu
# Sam Boutros-08/10/2014
$URI = „https://superwidgets.wordpress.com/category/sql/ „
$HTML = Invoke-WebRequest-Uri $URI
($HTML.ParsedHtml.getElementsByTagName (‚h2‘) / kde{ $_.název třídy-eq ‚entry-title‘ } ).innerText

v řádku 5 vybereme prvky HTML značkou „H2“, filtrujeme na ClassName = „entry-title“ a vybereme vlastnost innertext.

výstup vypadá takto:

HTML9

což jsou přesně názvy článků, které jsme si stanovili.

tyto informace lze dále zpracovávat, zaznamenávat, ukládat nebo přebalovat v jiných zprávách HTML, CSV nebo jiných zprávách..

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.