Web scraping - Consultas e CAPTCHA

Tenho duas duvidas.

´Duvida 1:

  • No curso web-scraping, no exercício de coleta de info do site transparencia, caso eu queira uma query que busque os dados do bolsa familia mas dentro de um período, como ficaria o list da query?

Ao inspecionar o GET, me pareceu que estaria dentro do elemento mesAno do list.

Request URL:http://transparencia.gov.br/beneficios/consulta/resultado?paginacaoSimples=true&tamanhoPagina=15&offset=0&direcaoOrdenacao=desc&colunaOrdenacao=mesAno&de=01%2F01%2F2019&ate=31%2F01%2F2020&colunasSelecionadas=linkDetalhamento%2ClinguagemCidada%2CmesAno%2Cuf%2Cmunicipio%2Cvalor&_=1586641400560

´Duvida 2:

Como fazer o scraping de páginas que possuem mecanismos de reCAPTCHA com ou sem desafio?

Espero que tenha sido claro nas dúvidas.

Obrigado e abraço,

Fabio

Olá Fabio, obrigado pelas dúvidas :slight_smile:

Com relação à dúvida 1, pesquisar um conjunto de datas depende da disponibilidade da própria API de lidar com requisições assim. No caso da API da transparência, isso não é possível. Então, a única forma de resolver seria criar um vetor com N datas e, em seguida, fazer N requisições usando o httr. Para isso, você pode fazer um purrr::map(), por exemplo. Falaremos mais sobre iterar scrapers no curso de Web Scraping 2.

Com relação à sua dúvida 2, captcha é um problema recorrente em web scraping. Primeiro, precisamos separar os tipos de captcha em 1) captchas com letras distorcidas numa imagem, 2) o reCaptcha v2 (botão de eu não sou robô) e 3) o reCaptcha v3 (não mostra o botão explicitamente). Para (1), existem iniciativas como o decryptr, que são modelos estatísticos baseados em redes neurais convolucionais para ler e classificar as imagens, preenchendo o captcha automaticamente. No caso (2), esses modelos podem até funcionar por algum tempo (existem vários exemplos na internet, inclusive utilizando o áudio), mas são instáveis ao longo do tempo, pois a Google, dona do reCaptcha, atualiza os desafios periodicamente (e eles sabem muito bem como criar tarefas difíceis de resolver por modelos estatísticos!). No caso (3), além das dificuldades do (2), o site fará uma série de verificações da sua sessão e dificultará as tasks sempre que desconfiar que o acesso está sendo feito por um robô.

Para (2) e (3), existem sites na internet que oferecem serviços manuais de resolução de reCaptchas, ou seja, seres humanos fazendo os cliques para seu robô. Eu pessoalmente sou contra a utilização desses serviços, mas isso varia de pessoa para pessoa. No meu caso, pelo menos, quando vejo que o site que desejo scrapear tem reCaptcha, eu tento buscar outros meios de conseguir os dados.

3 curtidas