PowerShell을 사용하여 모든 웹 페이지에서 링크를 추출하는 방법

0
625

image

PowerShell 3에는 강력한 새 웹 관련 기능을 비롯하여 많은 새로운 기능이 있습니다. 그것들은 웹 자동화를 극적으로 단순화하며, 오늘 우리는 웹 페이지에서 모든 단일 링크를 추출하고 원하는 경우 리소스를 선택적으로 다운로드하는 방법을 보여줄 것입니다.

PowerShell을 사용하여 웹 스크랩 핑

사람이 읽을 수있는 내용을보다 쉽게 ​​구문 분석하는 Invoke-WebRequest와 컴퓨터가 읽을 수있는 내용을 더 쉽게 읽을 수있는 Invoke-RestMethod라는 두 가지 새로운 cmdlet이 있습니다. 링크는 페이지 HTML의 일부이므로 사람이 읽을 수있는 요소의 일부입니다. 웹 페이지를 얻으려면 Invoke-WebRequest를 사용하고 URL을 제공하기 만하면됩니다.

Invoke-WebRequest –Uri‘http://howtogeek.com’

image

아래로 스크롤하면 응답에 링크 속성이있는 것을 볼 수 있습니다. PowerShell 3의 새로운 멤버 열거 기능을 사용하여 필터링 할 수 있습니다.

(Invoke-WebRequest –Uri‘http://howtogeek.com '). 링크

image

보시다시피, 많은 링크가 다시 제공되는 것처럼, 여기에서 원하는 링크를 걸러 낼 수있는 독특한 것을 찾기 위해 상상력을 사용해야합니다. 첫 페이지의 모든 기사 목록을 원한다고 가정 해 봅시다.

((Invoke-WebRequest –Uri‘http://howtogeek.com ') .Links | Where-Object {$ _. href -like “http *”} | 어디서 class -eq “title”).

image

새 cmdlet으로 할 수있는 또 다른 좋은 점은 매일 다운로드를 자동화하는 것입니다. Nat Geo 웹 사이트에서 오늘의 이미지를 자동으로 스크랩하는 방법을 살펴 보겠습니다.이를 위해 새 웹 cmdlet을 Start-BitsTransfer와 결합합니다.

$ IOTD = (((Invoke-WebRequest -Uri‘http://photography.nationalgeographic.com/photography/photo-of-the-day/').Links | innerHTML과 같은 “* Download Wallpaper *”). href
시작 비트 전송-소스 $ IOTD-대상 C : IOTD

그게 전부입니다. 당신 만의 깔끔한 트릭이 있습니까? 의견에 알려주십시오.