Estúpido Geek Truques: extrair links off qualquer página da web usando o PowerShell

PowerShell 3 tem um monte de novas funcionalidades, incluindo alguns novos e poderosos recursos relacionados à web. Eles dramaticamente simplificar a automatizar a web, e hoje vamos mostrar-lhe como você pode extrair todos os links single de uma página web, e, opcionalmente, fazer o download do recurso, se assim o desejar.

Há dois novos cmdlets que fazem automatizar a web mais fácil, invoque-WebRequest que faz a análise de conteúdo legível mais fácil, e invocar-RestMethod que torna o conteúdo legível por máquina mais fácil de ler. Desde ligações são parte do HTML de uma página fazem parte do material legível. Tudo que você tem que fazer para obter uma página da Web é usar Invoke-WebRequest e dar-lhe uma URL.

Invocar-WebRequest -URI ‘http://howtogeek.com’

Se você rolar para baixo você vai ver a resposta tem uma propriedade de links, podemos usar novo recurso membro de enumeração do PowerShell 3 para filtrar estes para fora.

(Chame-WebRequest -URI ‘http://howtogeek.com’) .links

Como você pode ver que você terá um monte de links para voltar, este é o lugar onde você precisa usar sua imaginação para encontrar algo único para filtrar as ligações que você está procurando. Vamos supor que queremos uma lista de todos os artigos na primeira página.

((Invocar-WebRequest -URI ‘http://howtogeek.com’) .links | Where-Object {$ _. Href -como “http *”} | Onde classe -eq “título”). Título

Outro grande coisa que você pode fazer com os novos cmdlets é automatizar transferências diárias. Vamos olhar para raspagem automaticamente a imagem do dia de folga site da Nat Geo, para fazer isso, vamos combinar os novos cmdlets web com Start-BitsTransfer.

$ IOTD = ((Invocar-WebRequest -URI ‘http://photography.nationalgeographic.com/photography/photo-of-the-day/’).Links | Onde innerHTML -como “* Baixar Wallpaper *”) href.; Start-BitsTransfer -Source $ IOTD -Destination C: \ IOTD \

Isso é tudo que existe para ela. Tem nenhum truques de seu próprio país? Deixe-nos saber nos comentários.

PowerShell é incrivelmente poderosa ferramenta.

Eu tentei no Windows 7 ulitmate com versão do PowerShell, mas não funcionou;. Por favor, poderia me dizer onde eu estou errado. Sua dando-me a mensagem como mencionado abaixo

PS C: \ Users \ User> Chamar-WebRequest -URI `http: //howtogeek.com ‘; O termo’ Invoke-WebRequest” não é reconhecido como o nome de um cmdlet, função, arquivo de script ou programa operável. Verifique a ortografia do nome, ou se um caminho foi incluído, verifique se o caminho está correto e tente novamente; Em linha:. 1 caractere: 18; + Invoke-WebRequest <<<< -URI `http: //. com; + CategoryInfo: ObjectNotFound: (Invocar-WebRequest: string) [], CommandNotFoundException; + FullyQualifiedErrorId: CommandNotFoundException Realmente é um ótimo artigo; Eu usá-lo para obter uma listagem de todos os campos de entrada HTML na tela. No entanto, se Javascript é usado para adicionar um campo, que não está incluída. . Além disso, Invoke-WebRequest não recebe a página HTML final se a página é redirecionada para outro URL; Existe alguma maneira de obter o HTML final - depois de qualquer redirecionamento e campos de JavaScript foram aplicadas; Thanks! Taylor, que é o tema transparente Windows você está usando neste tutorial;? Onde você tira isso? Desde já, obrigado! @Barton Sua realmente o tema padrão no Windows 8 🙂 @everybody mais, isso exige PowerShell 3. Se você estiver recebendo erros que o cmdlet não esta disponível o download da última versão do Posh. @Taylor: Como ativá-lo? Eu tenho apenas um com fundo não transparente e thickier esboço (Win8 RTM). Eu acho que este foi parte do Win8 RP, estou certo? Desculpe spam para a discussão ... Há uma boa chance de que você nunca viu um pombo bebê porque pombos poleiro para o alto em áreas protegidas e os bebês não deixar o ninho até que eles são quase do mesmo tamanho que os adultos.