Cum să extrageți linkurile din orice pagină Web utilizând PowerShell
PowerShell 3 are o mulțime de caracteristici noi, inclusiv unele caracteristici puternice noi legate de web. Acestea simplifică în mod dramatic automatizarea web-ului și astăzi vă vom arăta cum puteți extrage fiecare legătură într-o pagină Web și, dacă doriți, descărcați resursele.
Răzuirea Web-ului cu PowerShell
Există două cmdlet-uri noi care facilitează automatizarea web-ului, Invoke-WebRequest care facilitează parsarea conținutului lizibil pentru oameni și Invoke-RestMethod, ceea ce face conținutul citibil de către mașină mai ușor de citit. Deoarece linkurile fac parte din codul HTML al unei pagini, ele fac parte din lucrurile 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 un URL.
Invoke-WebRequest -Uri "http://howtogeek.com"
Dacă parcurgeți în jos, veți vedea că răspunsul are o proprietate de link-uri, putem folosi funcția de enumerare a membrilor noului PowerShell 3 pentru a le elimina.
(Invoke-WebRequest -Uri "http://howtogeek.com"). Legătura
După cum puteți vedea că veți obține o mulțime de link-uri înapoi, acesta este locul unde trebuie să vă folosiți imaginația pentru a găsi ceva unic pentru filtrarea legăturilor pe care le căutați. Să presupunem că vrem o listă cu toate articolele de pe prima pagină.
(Invoke-WebRequest -Uri 'http://howtogeek.com'). Legături | unde-obiect $ _. Href -like "http *" |
Un alt lucru grozav pe care îl puteți face cu noile cmdlet-uri este automatizarea descărcărilor de zi cu zi. Să ne uităm la decopertarea 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 | unde interiorHTML -like "* Descarcă Wallpaper *"). Href
Start-BitsTransfer -Source $ IOTD-Destinație C: \ IOTD \
Cam despre asta e. Aveți niște trucuri curate? Anunțați-ne în comentarii.