PowerShell 3 are o mulțime de funcții noi, inclusiv câteva funcții noi și puternice legate de web. Acestea simplifică dramatic automatizarea internetului, iar astăzi vă vom arăta cum puteți extrage fiecare link dintr-o pagină web și, dacă doriți, să descărcați resursa opțional.
Scraping Web cu PowerShell
Există două noi cmdlet-uri care facilitează automatizarea web-ului, Invoke-WebRequest, care face mai ușoară analiza conținutului lizibil de către oameni și Invoke-RestMethod, care face ca conținutul care poate fi citit automat să fie mai ușor de citit. Deoarece linkurile fac parte din codul HTML al unei pagini, ele fac parte din lucrurile care pot fi citite de om. Tot ce trebuie să faceți pentru a obține o pagină web este să utilizați Invoke-WebRequest și să îi dați o adresă URL.
Invoke-WebRequest –Uri ‘http://howtogeek.com’
Dacă derulați în jos, veți vedea că răspunsul are o proprietate de linkuri, putem folosi noua funcție de enumerare a membrilor PowerShell 3 pentru a le filtra.
(Invoke-WebRequest –Uri ‘http://howtogeek.com’) .Linkuri
După cum puteți vedea, primiți o mulțime de linkuri înapoi, aici trebuie să vă folosiți imaginația pentru a găsi ceva unic pentru a filtra linkurile pe care le căutați. Să presupunem că dorim o listă cu toate articolele de pe prima pagină.
((Invoke-WebRequest –Uri ‘ http://howtogeek.com ’) .Linkuri | Where-Object {$_.href -like “http*”} | Unde clasa -eq „titlu”). Titlu
Un alt lucru grozav pe care îl puteți face cu noile cmdlet-uri este automatizarea descărcărilor zilnice. Să ne uităm la răzuirea automată a imaginii zilei de pe site-ul web Nat Geo, pentru a face acest lucru vom combina noile cmdlet-uri web cu Start-BitsTransfer.
$ IOTD = ((Invoke-WebRequest -Uri ‘ http://photography.nationalgeographic.com/photography/photo-of-the-day/’).Links | În cazul în care innerHTML - ca „* Descărcați imaginea de fundal *”). Href
Start-BitsTransfer -Source $ IOTD -Destination C: \ IOTD \
Cam despre asta e. Aveți trucuri proprii? Spuneți-ne în comentarii.