Salve uma página da web com scripts usando o wget

0

Alguém sabe como salvar uma página da web com scripts usando o wget? Ou quais parâmetros devem ser usados para alcançar?

A página da web contém scripts e parece que somente a extensão SingleFile Core no Chrome pode salvar toda a propriedade de conteúdo. O Firefox não pode salvar o conteúdo da tabela, e o Chrome integrado salvará a mensagem "espere por favor" na página de resultados.

As outras partes da página não são importantes, apenas o conteúdo da tabela, então decido encontrar uma maneira de fazer isso, mas gastei uma hora para analisar o código fonte e visualizar as informações das ferramentas do desenvolvedor f12, mas Não é possível salvar o conteúdo da tabela apenas.

Aqui está a página da web: link

Obrigado pela ajuda!

    
por Sam 14.07.2017 / 16:56

1 resposta

0

E a resposta é:

wget --header 'Content-type: application/json' --header 'Cookie: ASP.NET_SessionId=1bsq4nw4nj30groly5pv5zt3' --post-data='{"local":"PE","type":"dataDepartureXML"}' 'http://m.marine.gov.mo/seawayScheduled/RealTimeSailing.aspx/GetData'

Onde o 'ASP.NET ....' é um cookie que é infelizmente obrigatório. Este cookie é enviado quando você recupera a página principal. Então você tem que fazer isso de maneira um pouco diferente com dois comandos:

  • um que obtém a página principal e a descarta (mas mantém o cookie no cookie.txt):

    wget --keep-session-cookies --save-cookies cookie.txt 'http://m.marine.gov.mo/seawayScheduled/RealTimeSailing.aspx?type=dataDepartureXML&local=PE&lang=ENG' -O /dev/null
    
  • um que recebe os dados, enviando o cookie:

    wget --load-cookies cookie.txt --header 'Content-type: application/json' --post-data='{"local":"PE","type":"dataDepartureXML"}' 'http://m.marine.gov.mo/seawayScheduled/RealTimeSailing.aspx/GetData' -O data.json
    

Os dados que você obtém são um array JSON com dois elementos string, que são HTML bruto. Caracteres especiais (aspas, colchetes ...) são escapados, portanto, o resultado não é muito legível, portanto, não é difícil limpá-lo com algumas mudanças globais em um editor.

    
por 14.07.2017 / 18:58