Buscar dados na receita

alguem tem este tipo de consulta funcionando ?

segue até onde cheguei, não consigo saber qual é o erro, é como se o click não fosse disparado, talvez porque eu tenha desabilitado o JS devido a ter erro isto depois que o capctha foi alterado na receita para 6 caracteres.

package aix;

import com.gargoylesoftware.htmlunit.BrowserVersion;
import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlForm;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import java.awt.image.RenderedImage;
import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import javax.imageio.ImageIO;

public class Aix {

    public static void main(String[] args) {
        WebClient webClient = new WebClient(BrowserVersion.FIREFOX_10);
        webClient.setJavaScriptEnabled(false);
        try {

            HtmlPage htmlPage = webClient.getPage("http://www.receita.fazenda.gov.br/PessoaJuridica/CNPJ/cnpjreva/Cnpjreva_Solicitacao2.asp");

            HtmlForm htmlForm = htmlPage.getForms().get(0);

            String result = htmlPage.asXml();

//            System.out.println(result);

            if (result.contains("src=\"/scripts/captcha/Telerik.Web.UI.WebResource.axd?type=rca&guid=")) {

                // pegando hash
                int posicaoInicial = result.indexOf("src=\"/scripts/captcha/Telerik.Web.UI.WebResource.axd?type=rca&guid=");

                String hash = result.trim().substring(posicaoInicial + 71, posicaoInicial + 71 + 36);

                // buscando a imagem:
                URL uri = new URL("http://www.receita.fazenda.gov.br/scripts/captcha/Telerik.Web.UI.WebResource.axd?type=rca&guid=" + hash);

                // gravando imagem
                RenderedImage img = ImageIO.read(uri);

                ImageIO.write((RenderedImage) img, "png", new File("a.png"));
            }

            htmlForm.getInputByName("cnpj").setValueAttribute("12345678909876");

            htmlForm.getInputByName("captcha").setValueAttribute("31SKQZ");

            System.out.println("OLA AQUI: " + htmlForm.getInputByName("captcha").getPage().asXml());
            //webClient.setJavaScriptEnabled(true);            


            HtmlPage subm = htmlForm.getInputByName("submit1").click();

            String[] linha = subm.asText().split("\r\n");

            for (String l : linha) {
                System.out.println(l);
            }
        } catch (FailingHttpStatusCodeException e) {
            e.printStackTrace();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

ninguem ???

ja era de se esperar.

Dá uma olhada nesse post!

[quote=MeninodaVila]Dá uma olhada nesse post!


[/quote]

isso foi a 3 anos atrás manu :slight_smile: eu ja havia conseguido, mas agradeço ter vindo aqui dar a resposta.

Olá Aix,

Estou tentando fazer algo parecido com o que vc fez, todavia nao estou tendo sucesso. Como você conseguiu quebrar o captcha?
Obrigado

[quote=thiago.venis]Olá Aix,

Estou tentando fazer algo parecido com o que vc fez, todavia nao estou tendo sucesso. Como você conseguiu quebrar o captcha?
Obrigado[/quote]

sim, tanto neste caso quanto para baixar XML´s da NF-e no site da receita.

Então, você tem como me ajudar, pq estou tentando e não estou conseguindo…
Obrigado.

posso, me adiciona no talk(dilneicunha@gmail.com), mas tem que ser amanhã ou segunda, agora estou ocupado concluindo um sistema.