Existe uma maneira de despejar uma fonte de página da Web sem ter que interagir diretamente com o navegador?

2

Existe uma maneira de, de alguma maneira, despejar a origem de uma página da Web automaticamente, sem interagir com um navegador em si; sem clicar com o botão direito do mouse na página e selecionar “view source”. Por exemplo, tenho um Internet Explorer aberto e exibindo determinado conteúdo. Eu quero obter o código-fonte HTML dessa página em um arquivo que eu possa ler. Talvez haja uma opção para manter a fonte da página atual em algum lugar no disco?

Alguns pontos:

  1. A página da Web que estou executando é um serviço da Web local que está aberto no modo quiosque (sem menu ou campo de endereço).
  2. Como esse serviço exige autenticação, não posso simplesmente abrir e acessar a página diretamente. Há um certo procedimento que eu me comprometo a chegar a esta página.
  3. Eu quero obter a fonte da página atual atual enquanto faço constantemente alterações nela e (preenchendo valores, escolhendo valores de combobox, etc.). Eu quero que essas alterações sejam refletidas na fonte, se eu executar a mesma página em uma nova janela, não terei meus campos editados nela.

Soluções como Selenium não me ajudarão porque eu não quero rodar o navegador em primeiro lugar.

    
por Eugene S 06.03.2015 / 06:42

3 respostas

1

Sei que você está no Windows, mas no mundo Linux / Mac OS X pode-se usar curl ou wget se você souber o URL de destino de uma página e quiser salvá-lo em um arquivo. Eu vejo que há uma versão do Windows de curl disponível aqui , bem como outras versões no site oficial curl também, então talvez isso funcione para você se você estiver confortável com a linha de comando?

Por exemplo, usando curl , você pode salvar o conteúdo da página principal do Google como esta em uma linha de comando:

curl -L google.com > google_index.html

O comando curl é óbvio e o comando -L informa ao curl para simplesmente resolver qualquer redirecionamento com o qual alguém possa se deparar ao acessar um URL. O google.com é o URL de destino e o > diz ao comando para redirecionar a saída de curl -L google.com para o arquivo chamado google_index.html .

Depois de executar esse comando, o conteúdo de google_index.html será 100%, exatamente como você veria se visualizasse o formulário fonte de um navegador da Web.

Mas lembre-se: todo o comando curl , como esse, faria o conteúdo bruto retornado pela URL. Ele não forneceria gráficos, CSS, JavaScript ou qualquer outro conteúdo auxiliar que estivesse conectado a esse HTML.

Para fazer uma busca mais complexa e sofisticada do conteúdo completo do site, wget é o caminho a percorrer. Parece haver uma versão do Windows de wget hospedado aqui , mas não tem certeza de como ela pode estar desatualizada em comparação com a versão principal do GNU de wget . Portanto, tente por sua conta e risco.

    
por 06.03.2015 / 06:54
0

A partir do Powershell 3.0, você pode usar Invoke-WebRequest

Invoke-WebRequest

Gets content from a web page on the Internet.

Detailed Description

The Invoke-WebRequest cmdlet sends HTTP, HTTPS, FTP, and FILE requests to a web page or web service. It parses the response and returns collections of forms, links, images, and other significant HTML elements.

This cmdlet was introduced in Windows PowerShell 3.0.

O alias do powershell para Invoke-WebRequest é actuall wget

    
por 06.03.2015 / 11:35
0

Eu suponho que você está tentando invadir um quiosque, LOL?

Brincadeira à parte, você precisa do Fiddler para ser instalado na máquina do cliente. Se usando HTTPS é ainda mais difícil, tenho que confiar em certs do Fiddler. Você pode encontrar cert não confiável ao usar o Fiddler, ele seqüestrará conexões e ouvirá todo o tráfego de htpp, decodificará e transmitirá de volta para o navegador. Praticamente um proxy, é usado para desenvolvimento / depuração da web.

Esta questão não deve estar no Super User, seu desenvolvimento relacionado à web.

    
por 05.11.2018 / 21:04