web scraping com python

50
WEB SCRAPING COM PYTHON

Upload: matheus-fidelis

Post on 15-Apr-2017

320 views

Category:

Internet


1 download

TRANSCRIPT

Page 1: Web scraping com python

WEB SCRAPING COM PYTHON

Page 2: Web scraping com python

Matheus FidelisDevOps na Superlógica TecnologiasTwitter: @fidelissauroWeb: http://nanoshots.com.brEmail: [email protected]

Page 3: Web scraping com python

1. WTF É WEB SCRAPING?????

Page 4: Web scraping com python

O QUE É WEB SCRAPING?» Tão antigo quanto a arte de andar» Mais apelidos que mãe no ensino médio

⋄ Web Scraping⋄ Screen Scraping⋄ Data Mining ⋄ Web Harvesting

⋄ BOTS!!

Page 5: Web scraping com python

Prática de coletar dados da

Web que não seja por API ou

intermédio humano

(Browser)

Page 6: Web scraping com python

O QUE É WEB SCRAPING?» Scripts automatizados

⋄ Mini-agentes, os Web Crawlers⋄ Solicitar páginas HTML⋄ Fazer o parsing e análise do arquivo⋄ Minerar informações e metadados

da URL⋄ Gerar bases de dados ⋄ Abrir portas para Machine Learning,

Sales, Marketing, Hacking, Big Data e etc...

Page 7: Web scraping com python

2. POR QUE UTILIZAR?

Page 8: Web scraping com python

POR QUE USAR WEB SCRAPING?

» Navegadores são fodas! (Mas não são a única opção)

» Coletar e processar grande quantidade de dados

» Ir onde nenhum buscador jamais foi… » Banco de dados estendido, de uma até 1

zilhão de páginas

Page 9: Web scraping com python

MAS…E AS API’S???

(Dãããã)

Page 10: Web scraping com python

QUAL O PROBLEMA DE UTILIZAR API’S??

Page 11: Web scraping com python

NENHUM!

Page 12: Web scraping com python

E AS API’S?

» É ideal utilizar API (Se existir)» API’s são tudo de bom, quando você

encontra alguma que te atenda legal.

Page 13: Web scraping com python

QUANDO USAR WEB CRAWLERS?

» Quando você está coletando dados de vários sites

» Quando o site não tem uma API coesa » Quando você precisa de um conjunto

de dados não disponíveis na API» A origem não tem infraestrutura ou

conhecimento técnico para criar uma API

» Quando a API tem limite de de velocidade/requisição.

Page 14: Web scraping com python

3. PRINCIPAIS USOS

Page 15: Web scraping com python

QUANDO USAR WEB CRAWLERS?

» Buscadores» Indexação e Ranking de conteúdo (SEO)» Mineração de dados, » Encontrar oportunidades comerciais,

reclamações, contatos, pessoas, sales, identificação de leads e etc

» Tanto um herói quanto um vilão

Page 16: Web scraping com python
Page 17: Web scraping com python

COMO FAZER UM GOOGLETENHA MILHÕES

DEDÓLARES PRA

COMPRAR SERVIDORES E

ARMAZENAMENTO

Page 18: Web scraping com python

COMO FAZER UM GOOGLETENHA MILHÕES

DEDÓLARES PRA

COMPRAR SERVIDORES E

ARMAZENAMENTO

FAÇA UM WEB

CRAWLER

Page 19: Web scraping com python

COMO FAZER UM GOOGLETENHA MILHÕES

DEDÓLARES PRA

COMPRAR SERVIDORES E

ARMAZENAMENTO

FAÇA UM WEB

CRAWLER

AUMENTE O

TRÁFEGO DE TODA

A INTERNET

Page 20: Web scraping com python

PRONTO!

Page 21: Web scraping com python

4. COMO COMEÇAR?

Page 22: Web scraping com python

COMEÇANDO - O MAIS SIMPLES POSSÍVEL

» Modo de preparo:⋄ 1 lib de request HTTP (urllib, urllib2, request,

etc..) ⋄ BeutifulSoup

http://wiki.python.org.br/BeautifulSoup

Page 23: Web scraping com python

# pip install beautifulsoup4

Page 24: Web scraping com python

PRIMEIRO REQUEST COM URLLIB2

Page 25: Web scraping com python

HTML PURO FEIO PRA CRL

Page 26: Web scraping com python

AGORA É A HORA DO BEAUTIFUL SOAP» Parsing de HTML, XML, HXML» Transforma elementos HTML em objetos» Facilita a busca e análise de dados» REGEX

Page 27: Web scraping com python

INICIANDO O BEAUTIFULSOUP

Page 28: Web scraping com python

INICIANDO O BEAUTIFULSOUP

Page 29: Web scraping com python

CAPTURANDO ELEMENTOS HTML

Page 30: Web scraping com python

CAPTURANDO ELEMENTOS HTML

Page 31: Web scraping com python

CAPTURANDO ELEMENTOS HTML

Page 32: Web scraping com python

CAPTURANDO ELEMENTOS HTML

Page 33: Web scraping com python

CAPTURANDO ELEMENTOS HTML

Page 34: Web scraping com python

ARMAZENANDO RESULTADOS - LISTA

Page 35: Web scraping com python

ARMAZENANDO RESULTADOS - LISTA

Page 36: Web scraping com python

5. COISAS PRA DAR ATENÇÃO

Page 37: Web scraping com python

COISINHAS PRA DAR ATENÇÃO

» Tratamento de Exceção» Identificar links internos e externos» Descarregar os links em alguma base de dados

(SQL, NoSQL, CSV, txt…) » Tratar e normalizar os dados

Page 38: Web scraping com python

RASTREANDO COM SEGURANÇA - ERROS» Tratamento de erros e exceções » Deu merda, parou tudo » Você foi dormir, esperando o crawler

terminar, deu erro, se f*(deu» A WEB é uma zona» Nem todos os dados estão da maneira que

esperamos» Use try; except;

Page 39: Web scraping com python

Exceções» A WEB é uma zona. Nem tudo é o que se

espera...

Page 40: Web scraping com python

RASTREANDO COM SEGURANÇA - ERROS

Page 41: Web scraping com python

RASTREANDO COM SEGURANÇA - ERROS

Page 42: Web scraping com python

Caixa baixa/alta e espaços em branco

» .lower() .upper()» .strip()

Page 43: Web scraping com python

6. TENTANDO SER GENTE

Page 44: Web scraping com python

PARECENDO HUMANO» HTTP Headers (Headers no request do URLib) » Cookies (Selenium)» Ritmo (soca um sleep) » Verificação para humanos

Page 45: Web scraping com python

HEADERS HTTP

Page 46: Web scraping com python

7. CASOS EM QUE DEU M#RD@

Page 47: Web scraping com python

QUANDO DEU M#RD@?» eBay vs Bidder’s Edge

» EUA vs Computer Fraud and Abuse Act

» Field vs Google

Page 48: Web scraping com python

8. CASOS QUE FOI AMORZINHO

Page 49: Web scraping com python

HTTPS://QUEROSER.TECH

Page 50: Web scraping com python

OBRIGADO!Perguntas?Como me achar

» @fidelissauro» [email protected]