Baixar arquivos da página com filtro predefinido

0

Eu quero baixar todos os arquivos * .pdf de um site. ( link )

Mas quando abro o URL, apenas os primeiros 50 documentos são listados (e também baixados com o WGET) Então eu mudei a URL no meu comando, incluindo os parâmetros de pesquisa, que funciona bem quando eu abri-lo no navegador (mostra todos os 145), mas não funciona no meu comando.

Você pode me dar uma dica ou me ajudar por favor?

wget --recursive --level=1 --no-directories --no-host-directories --no-check-certificate --accept pdf https://www.parlament.gv.at/PAKT/PLENAR/index.shtml?SUCH=&xdocumentUri=%2FPAKT%2FPLENAR%2Findex.shtml&pageNumber=&GP=XXV&STEP=&FBEZ=FP_007&NRBRBV=NR&R_SISTEI=SI&requestId=76AAFD95E4&LISTE=&jsMode=&STATT=ALLE&listeId=1070&EING=ALLE

Algo semelhante (ou mais difícil) que gostaria de alcançar com o link de

No segundo caso, eu preciso mesmo fazer uma seleção primeiro, que não tenho idéia para resolver.

Agradeço desde já por sua ajuda.

    
por cmasterdelphi 12.07.2016 / 21:48

1 resposta

1

No Windows wget.exe (GNU Wget 1.10.2) ele realmente não funciona direito (sem citar o URL, há erros para a parte do URL após o primeiro & e com aspas duplas em torno do URL o ? de alguma forma é traduzido para @ por wget.exe, invalidando o URL). OTOH, no Debian Jessie (GNU Wget 1.16) funciona muito bem (com aspas duplas em torno do URL) - mas eu suponho que você esteja no Windows, ou usando um antigo wget .

A resposta "outro" na pergunta SO ligada por w32sh (em comentários) parece funcionar, basta colocar o URL em um arquivo de texto (sem citar) e substituir o URL em seu comando por -i URL.txt .

Quanto ao segundo caso, você precisa criar um URL para solicitação HTTP GET com os parâmetros necessários.

  1. Se você observar a origem HTML da página (usando "Ver fonte da página" ou um inspetor de página integrado no navegador), deverá encontrar a tag form que diz:

    < formulário id="filterFormFP_023" action="/ SERV / STAT / IND / index.shtml" método="get" [...] >

    Assim, a primeira parte do seu URL deve ser https://www.parlament.gv.at/SERV/STAT/IND/index.shtml (basicamente adicionando o parâmetro action ao nome do host).

  2. Dentro do formulário, observe um fieldset contendo os campos de entrada. Menu suspenso "Zeitraum":

    < selecione id="FP_023_GP" nome [...]="GP" >

    Botões de rádio "Teile" / "Personen":

    < input id="FP_023_R_TP_1" type="rádio" [...] valor="T" verificado="" nome="R_TP" > < input id="FP_023_R_TP_2" tipo="rádio" [...] valor="P" nome="R_TP" >

    Outras opções suspensas:

    < selecione id="FP_023_T" nome [...]="T" >

    < selecione id="FP_023_PADT" nome [...]="PADT" >

    et cetera.

  3. A partir desses campos, você precisa obter o name e o valor com o qual deseja consultar e anexá-los ao URL, para que ele se torne https://www.parlament.gv.at/SERV/STAT/IND/index.shtml?name1=value1&name2?value2&name3=value3&name4=value4 (e assim por diante). Observe o ? antes da lista de parâmetros e & entre cada par nome-valor do parâmetro. Para os menus suspensos ( select tags), use o que estiver listado no atributo option tag value como o valor. Por exemplo. https://www.parlament.gv.at/SERV/STAT/IND/index.shtml?GP=XXIV&R_TP=T&T=B&PADT=178 .

  4. Por fim, teste o URL no navegador e, se funcionar como se você tivesse feito a consulta no navegador, coloque o URL em um arquivo de texto e use o método acima com wget .

Observe também que, se alguns dos valores dos parâmetros contiverem espaços ou caracteres não-ASCII , você provavelmente precisará para usar codificação adequada para eles.

    
por 03.08.2016 / 14:18