Scraping

18
Scraping Vítor Baptista [email protected]

description

Ferramentas para raspagem de páginas e PDFs

Transcript of Scraping

Page 2: Scraping

Qual o problema?

Page 3: Scraping

Websites

● Requer envio de algum formulário?

● Requer login?

● Funciona sem JavaScript?

Page 4: Scraping

Website básico

Page 5: Scraping

Website com formulário

Page 6: Scraping

Website com login

Page 7: Scraping

Acessando elementos específicos

● CSS Selectors (HTML)– .classe-css

– #id-elemento

– div#body

● XPath (XML)– //table/td/tr

Page 8: Scraping

Ferramentas

● ScraperWiki

● ScrapingHub

● Mechanize (Python, Ruby, ...)

● Scrapy (Python)

● Ghost (Python, para sites que requerem JavaScript)

Page 9: Scraping

PDFs

● Se você consegue selecionar texto do PDF, ou seja, o PDF foi gerado por um programa qualquer, e não é simplesmente um documento escaneado, você está com sorte.

● Se não, as técnicas são as mesmas pra quebrar CAPTCHA (vou falar a seguir)

Page 11: Scraping

CAPTCHAS

● Existem para evitar que pessoas automatizem o acesso a websites, seja para raspagem ou para criar contas

● Para quebrar um CAPTCHA, primeiro baixamos um grande número de imagens, as resolvemos manualmente e usamos esse conjunto para treinar a ferramenta escolhida

Page 12: Scraping

Limpeza de ruído

● ImageMagick

Page 14: Scraping

GOCR

● Simples de usar

● Funciona em CAPTCHAs mais simples

Page 15: Scraping

Tesseract

● É a ferramenta livre mais poderosa

● Desenvolvida desde 1985 inicialmente pela HP, depois pelo Google

● Difícil de usar

Page 16: Scraping

E se eu não conseguir quebrar o CAPTCHA?

Page 17: Scraping

Death By Captcha

● Uma das empresas que vende serviço de “quebra” de CAPTCHAs

● Você envia a imagem do CAPTCHA e eles te devolvem a solução

● São pessoas em algum lugar cujo trabalho é quebrar CAPTCHAS

● US$ 1,39 por 1.000 CAPTCHAs (e você não paga pelos errados)

Page 18: Scraping

Etiqueta de crawling

● Limite sua velocidade (normalmente uso 1 requisição por segundo)

● Adicione uma forma de contato ao seu User-Agent