lees HTML via Powershell. Powershell / Sam ’s Corner

informatie ophalen van webpagina’ s via Powershell

PS1in veel gevallen is de informatie die we nodig hebben beschikbaar op een of meerdere webpagina ‘ s, maar we moeten dezelfde informatie herhaaldelijk verwerken. Om zo ‘ n herhaalde taak te automatiseren via Powershell moeten we HTML-gegevens lezen en ontleden. Bijvoorbeeld, een vraag werd onlangs geplaatst op het Microsoft 2010 Sharepoint forum:

Ik hou van hoe SharePoint 2010 heeft de pagina: http://Server:880/_admin/PatchStatus.aspx. Echter, kijkend naar deze pagina elke server heeft ongeveer 100 patches. Scrollen door deze lijst is moeilijk om te zien of een van de servers een patch mist of patches heeft die andere servers niet hebben. Is er een manier om de informatie op de PatchStatus te exporteren.aspx-pagina in Central Admin naar een excel-spreadsheet?

voor deze oefening, laten we zeggen dat we de titels van de berichten in deze URL https://superwidgets.wordpress.com/category/sql

eerst, laten we lezen in de HTML-code van deze pagina:

HTML2

laten we nu een pipe maken om-Member te laten zien wat voor soort object we hebben en zijn beschikbare methoden en eigenschappen:

HTML3

na het verkennen van de verschillende eigenschappen van het $HTML-object dat we hebben, en met wat achtergrond HTML-kennis, kunt u zien dat de informatie die we zoeken in de html-inhoud is.

met dezelfde techniek hierboven kunnen we verdere eigenschappen van het HTML-object verkennen, zoals “ParsedHTML”

$HTML.ParsedHtml / Get-Member

dit toont aan dat het een htmldocumentclass-object is met tal van gebeurtenissen, methoden en eigenschappen:

HTML7

Gedeeltelijke lijst van HTMLDocumentClass gebeurtenissen van het object, methoden en eigenschappen

Wat is nuttig om ons hier de volgende 3 methoden:

getElementById
getElementsByName
getElementsByTagName

Nu weten we hoe het uittreksel van de informatie die we nodig hebben van een web-pagina, laten we eens kijken naar de details van de webpagina in de hand https://superwidgets.wordpress.com/category/sql. Open het bijvoorbeeld in IE, druk op F12 om de Dom explorer te openen aan de onderkant, vouw de HTML-tags uit, en beweeg de muis over de tags Een voor een. Merk op dat de bovenste ie-Paneel verandert de achtergrondkleur van het element dat u de muis op beweegt. Dit geeft ons een visuele indicatie van welk element in de HTML-code vertegenwoordigt welke tekst of oppervlakte van een HTML-pagina.

HTML6

u kunt de artikeltitels zien waarin we geïnteresseerd zijn, die beginnen met

<h2 klasse = “vermelding-titel”>

we kunnen nu schrijven de volgende paar regels van Powershell script code om de taak te voltooien:

HTML8

# Script om posttitels weer te geven in de SQL-categorie van Superwidgets-blog
# Sam Boutros-08/10/2014
$URI = “https://superwidgets.wordpress.com/category/sql/ “
$HTML = Invoke-WebRequest-Uri $URI
($HTML.ParsedHtml.getElementsByTagName (‘h2’) | Where{ $_.className-eq ‘entry-title’}).innerText

in regel 5 kiezen we HTML-elementen met de tag” h2″, filteren op ClassName = “entry-title” en selecteren we de eigenschap innertext.

de uitvoer ziet er zo uit:

HTML9

dat is precies de artikeltitels die we wilden krijgen.

deze informatie kan verder worden verwerkt, gelogd, opgeslagen of opnieuw verpakt in andere HTML -, CSV-of andere rapporten..

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.