If-Koubou

Jak wyodrębnić linki z dowolnej strony internetowej przy użyciu PowerShell

Jak wyodrębnić linki z dowolnej strony internetowej przy użyciu PowerShell (Jak)

PowerShell 3 ma wiele nowych funkcji, w tym kilka nowych zaawansowanych funkcji związanych z przeglądarką internetową. Drastycznie upraszczają automatyzację sieci, a dzisiaj pokażemy, w jaki sposób można wyodrębnić każdy pojedynczy link ze strony internetowej i opcjonalnie pobrać zasób, jeśli sobie tego życzysz.

Skrobanie sieci za pomocą PowerShell

Istnieją dwa nowe cmdlety, które ułatwiają automatyzację sieci, Invoke-WebRequest, który ułatwia analizowanie treści czytelnej dla człowieka, oraz Invoke-RestMethod, który ułatwia czytanie treści do odczytu maszynowego. Ponieważ linki są częścią HTML strony, są częścią czytelnej dla człowieka rzeczy. Wszystko, co musisz zrobić, aby uzyskać stronę internetową, to użyj Invoke-WebRequest i podaj jej adres URL.

Invoke-WebRequest -Uri 'http://howtogeek.com'

Jeśli przewiniesz w dół zobaczysz, że odpowiedź ma właściwość links, możemy użyć funkcji wyliczania nowych członków PowerShell 3, aby je odfiltrować.

(Invoke-WebRequest -Uri 'http://howtogeek.com') .Links

Jak widzisz, odzyskujesz wiele linków, tutaj musisz użyć wyobraźni, aby znaleźć coś unikalnego, by odfiltrować szukane linki. Załóżmy, że chcemy listę wszystkich artykułów na pierwszej stronie.

((Invoke-WebRequest -Uri 'http://howtogeek.com') .Links | Where-Object $ _. Href -like "http *" | Where class -eq "title") Tytuł

Kolejną wspaniałą rzeczą, jaką możesz zrobić dzięki nowym cmdletom, jest automatyzacja codziennych pobrań. Spójrzmy na automatyczne zeskrobywanie obrazu dnia z serwisu Nat Geo, aby to zrobić, połączymy nowe cmdlety sieciowe z Start-BitsTransfer.

$ IOTD = ((Invoke-WebRequest -Uri 'http://photography.nationalgeographic.com/photography/photo-of-the-day/').Links | Gdzie innerHTML-like "* Pobierz Wallpaper *"). Href
Start-BitsTransfer -Source $ IOTD -Destination C: \ IOTD \

To wszystko. Czy masz jakieś fajne sztuczki? Daj nam znać w komentarzach.