Processar JS

11 respostas
Hammer

bem, se eu tenho um link de uma certa página, e ela tem um javascript

é possível, atravez de um programa java, acessar essa pagina e salvar o conteudo dela?

por exemplo: um arquivo pdf que esta sendo exibida nela?

11 Respostas

R

vc quer entrar numa pagina e salvar o código JS dela? bancar o hacker? hahaha
isso não é possível amigo…

Hammer

não quero bancar o hacker,

mas contece que o site oficial da união só se pode fazer o download de uma pagina de cada vez, entao gostaria de fazer um programa em java para fazer o download de todas as paginas

mas acontece que o acesso direto ao arquivo .pdf é bloqueado, entao gostaria de algo que pegasse a url dessa pagina com esse JS e que pudesse salvar esse pdf.

JM4X

talvez seria mais facil vc usar o javascript mesmo para isso, se a idéia é só baixar os pdfs…

com java, o mais proximo que cheguei disso foi fazendo requisição e pegando a resposta.

URL url = new URL("http://www.guj.com.br");
URLConnection conn = url.openConnection();
BufferedReader input = new BufferedReader(new InputStreamReader(conn.getInputStream()));

mas no seu caso não da pra ler o buffered reader normalmente, pq é um postscript (PDF),
daí vc poderia pesquisar sobre o pdfbox da apache, que é uma biblioteca para manipular pdf.

espero que ajude.

Hammer

obrigado pela resposta, vou tentar hoje aqui e qualquer coisa faço um novo post aqui.

Hammer

infelizmente no bufferreader não pega o conteudo do pdf…

JM4X

num da pra por o pdf num stream?

Hammer

não cosegui…

alguma ideia?

gomesrod

Diga uma coisa… seu problema é trazer o PDF a partir da URL, ou é descobrir a URL executando um javascript?

Hammer

trazer o pdf…

gomesrod

Então o resto é fácil… Você já tem isso aqui:

JM4X:
URL url = new URL("http://www.guj.com.br"); URLConnection conn = url.openConnection();

Daí é só ir lendo o stream

InputStream input = conn.getInputStream(); OutputStream output = new FileOutputStream("c:\\temp\arq.pdf"); int data; while((data = input.read()) != -1) { output.write(data); } output.flush(); output.close(); input.close();
É mais ou menos isso, fiz sem editor então talvez tenha alguns erros, talvez precise de tratamento de exceção, etc… mas o principal é isso aí, ler do Stream da conexão e escrever no arquivo

Hammer

infelizmente nao deu certo. no site oficial da uniao nao é tao simples assim…

http://www.in.gov.br/imprensa/visualiza/index.jsp?jornal=1&pagina=1&data=05/07/2011

Criado 2 de julho de 2011
Ultima resposta 7 de jul. de 2011
Respostas 11
Participantes 4