Hogyan lehet kivonni a linkeket?
A PowerShell 3 számos új funkcióval rendelkezik, köztük néhány új, új webes funkcióval. Jelentősen leegyszerűsítik a web automatizálását, és ma megmutatjuk, hogyan lehet kivonni minden egyes linket egy weboldalról, és tetszés szerint tetszés szerint letöltheti az erőforrást.
A webes adatgyűjtés a PowerShell segítségével
Két új cmdlet teszi lehetővé a webes automatizálást, az Invoke-WebRequest, amely megkönnyíti az emberi olvasható tartalom elemzését, és az Invoke-RestMethod, amely megkönnyíti a gépolvasható tartalom olvasását. Mivel a linkek az oldal HTML-jének részét képezik, az emberi olvasható dolgok részét képezik. Mindössze annyit kell tennie, hogy egy weboldalat használjon az Invoke-WebRequest használatával, és adjon meg egy URL-t.
Invoke-WebRequest -Uri 'http://howtogeek.com'
Ha lefelé görgetve látni fogja, hogy a válasz egy hivatkozási tulajdonsággal rendelkezik, akkor a PowerShell 3 új tagszámláló funkciója segítségével kiszűrheti ezeket.
(Invoke-WebRequest -Uri 'http://howtogeek.com') .Linkek
Amint látod, hogy sok linket kapsz vissza, akkor ott kell használnod a képzeletedet, hogy valami egyediet találj, hogy kiszűrje a keresett linkeket. Tegyük fel, hogy szeretnénk egy listát az összes cikkről az első oldalon.
((Invoke-WebRequest -Uri 'http://howtogeek.com') .Linkek | Hol-Objektum $ _. Href-like “http *” |
Egy másik nagyszerű dolog, amit az új cmdlet-ekkel tehetünk, a mindennapi letöltések automatizálása. Nézzük meg, hogy automatikusan lekaparjuk a nap képét a Nat Geo webhelyről, hogy ezt kombináljuk az új web cmdleteket a Start-BitsTransfer segítségével.
$ IOTD = ((Invoke-WebRequest -Uri 'http://photography.nationalgeographic.com/photography/photo-of-t-day/').Links | Hol InternalHTML-szerű „* Háttérkép letöltése *”). Href
Start-BitsTransfer -Source $ IOTD -Desztináció C: IOTD \ t
Ez az egész. Van valami tiszta trükk? Tájékoztassa velünk a megjegyzéseket.