Cómo extraer enlaces de cualquier página web con PowerShell

PowerShell 3 tiene muchas características nuevas, incluidas algunas características nuevas y potentes relacionadas con la web. Simplifican drásticamente la automatización de la web, y hoy le mostraremos cómo puede extraer cada enlace de una página web y, opcionalmente, descargar el recurso si así lo desea.

PowerShell 3 tiene muchas características nuevas, incluidas algunas características nuevas y potentes relacionadas con la web. Simplifican drásticamente la automatización de la web, y hoy le mostraremos cómo puede extraer cada enlace de una página web y, opcionalmente, descargar el recurso si así lo desea.

Raspando la web con PowerShell

Hay dos nuevos cmdlets que facilitan la automatización de la web, Invoke-WebRequest, que facilita el análisis del contenido legible por humanos, e Invoke-RestMethod, que hace que el contenido legible por máquina sea más fácil de leer. Como los enlaces son parte del HTML de una página, son parte del material legible por humanos. Todo lo que tienes que hacer para obtener una página web es usar Invoke-WebRequest y darle una URL.

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

Si se desplaza hacia abajo, verá que la respuesta tiene una propiedad de enlaces, podemos usar la nueva función de enumeración de miembros de PowerShell 3 para filtrarlos.

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

Como puede ver, obtiene muchos enlaces de regreso, aquí es donde necesita usar su imaginación para encontrar algo único para filtrar los enlaces que está buscando. Supongamos que queremos una lista de todos los artículos en la portada.

((Invoke-WebRequest –Uri ‘http://howtogeek.com’) .Links | Where-Object {$ _. Href -like «http *»} | Where class -eq «title»). Título

Otra gran cosa que puedes hacer con los nuevos cmdlets es automatizar las descargas diarias. Miremos raspar automáticamente la imagen del día fuera del sitio web de Nat Geo, para hacer esto combinaremos los nuevos cmdlets web con Start-BitsTransfer.

$ IOTD = ((Invoke-WebRequest -Uri ‘http://photography.nationalgeographic.com/photography/photo-of-the-day/’).Links | Where innerHTML-like “* Download Wallpaper *”). Href < br />
Start-BitsTransfer -Source $ IOTD -Destination C: \ IOTD \

Eso es todo al respecto. ¿Tienes algún truco genial? Háganos saber en los comentarios.

Rate article
labsfabs.com
Add a comment