Læs HTML via e-mail. Sam ‘ s Corner

Hent information fra hjemmesider via Strømshell

PS1 i mange tilfælde er de oplysninger, vi har brug for, tilgængelige på en eller flere hjemmesider, men vi er nødt til at behandle de samme oplysninger gentagne gange. For at automatisere en sådan gentagen opgave via Strømshell skal vi læse og analysere HTML-data. For eksempel blev et spørgsmål for nylig sendt på Microsoft 2010 Sharepoint forum:

Jeg elsker hvordan SharePoint 2010 har siden: http://Server:880/_admin/PatchStatus.aspx. Men når man ser på denne side, har hver server omkring 100 patches. Rulning gennem denne liste er svært at se, om en af serverne mangler en patch eller har patches, som andre servere ikke gør. Er der en måde at eksportere oplysningerne på PatchStatus.er der en side i central Admin til et regneark?

med henblik på denne øvelse, lad os sige, at vi ønsker at få titlerne på indlægene i denne URL https://superwidgets.wordpress.com/category/sql

lad os først læse i HTML-koden på denne side:

HTML2

lad os nu rør det for at få-medlem for at se, hvilken slags objekt vi fik, og dets tilgængelige metoder og egenskaber:

HTML3

efter at have udforsket forskellige egenskaber for det $HTML-objekt, vi har, og med en vis HTML-viden i baggrunden, kan du fortælle, at de oplysninger, vi leder efter, er i HTML-kroppen.

ved hjælp af den samme teknik ovenfor kan vi udforske yderligere egenskaber ved HTML-objektet som “ParsedHTML”

$HTML.ParsedHtml / Get-Member

dette viser, at det er et htmldocumentclass-objekt med masser af begivenheder, metoder og egenskaber:

HTML7

delvis liste over htmldocumentclass objekthændelser, metoder og egenskaber

hvad er nyttigt for os her er følgende 3 metoder:

getElementById
getElementsByName
getElementsByTagName

nu hvor vi ved, hvordan vi kan udtrække de oplysninger, vi har brug for fra en hjemmeside, lad os se på detaljerne på hjemmesiden ved hånden https://superwidgets.wordpress.com/category/sql. Åbn den i IE for eksempel skal du trykke på F12 for at åbne DOM-Stifinder i bunden, udvide HTML-tags og flytte musen over tags en efter en. Bemærk, at den øverste IE-rude ændrer baggrundsfarven på det element, du flytter musen på. Dette giver os en visuel indikation af, hvilket element i HTML-koden der repræsenterer hvilken tekst eller område på en HTML-side.

HTML6

du kan se artiklen titler, vi er interesseret i, er dem, der starter med

<h2 class = “indgangstitel”>

vi kan nu skrive følgende få linjer med Magtshell script kode for at fuldføre opgaven:

 HTML8

# Script til at vise posttitler i kategorien Supervidgets blog
# Sam Boutros-08/10/2014
$URI = “https://superwidgets.wordpress.com/category/sql/ “
$HTML = påkald-Uri $Uri
($HTML.ParsedHtml.getElementsByTagName (‘h2′) / hvor{ $_.’entry-title’}).innertekst

i linje 5 vælger vi HTML-elementer efter “H2” – mærket, filtrerer på ClassName = “entry-title” og vælger innertekst-egenskab.

Output ser sådan ud:

HTML9

hvilket er nøjagtigt de artikeltitler, vi satte os for at få.

disse oplysninger kan viderebehandles, logges, gemmes eller ompakkes i andre HTML -, CSV-eller andre rapporter..

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.