web scraping com python

Post on 15-Apr-2017

317 Views

Category:

Internet

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

WEB SCRAPING COM PYTHON

Matheus FidelisDevOps na Superlógica TecnologiasTwitter: @fidelissauroWeb: http://nanoshots.com.brEmail: msfidelis01@gmail.com

1. WTF É WEB SCRAPING?????

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!!

Prática de coletar dados da

Web que não seja por API ou

intermédio humano

(Browser)

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...

2. POR QUE UTILIZAR?

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

MAS…E AS API’S???

(Dãããã)

QUAL O PROBLEMA DE UTILIZAR API’S??

NENHUM!

E AS API’S?

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

encontra alguma que te atenda legal.

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.

3. PRINCIPAIS USOS

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

COMO FAZER UM GOOGLETENHA MILHÕES

DEDÓLARES PRA

COMPRAR SERVIDORES E

ARMAZENAMENTO

COMO FAZER UM GOOGLETENHA MILHÕES

DEDÓLARES PRA

COMPRAR SERVIDORES E

ARMAZENAMENTO

FAÇA UM WEB

CRAWLER

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

PRONTO!

4. COMO COMEÇAR?

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

# pip install beautifulsoup4

PRIMEIRO REQUEST COM URLLIB2

HTML PURO FEIO PRA CRL

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

INICIANDO O BEAUTIFULSOUP

INICIANDO O BEAUTIFULSOUP

CAPTURANDO ELEMENTOS HTML

CAPTURANDO ELEMENTOS HTML

CAPTURANDO ELEMENTOS HTML

CAPTURANDO ELEMENTOS HTML

CAPTURANDO ELEMENTOS HTML

ARMAZENANDO RESULTADOS - LISTA

ARMAZENANDO RESULTADOS - LISTA

5. COISAS PRA DAR ATENÇÃO

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

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;

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

espera...

RASTREANDO COM SEGURANÇA - ERROS

RASTREANDO COM SEGURANÇA - ERROS

Caixa baixa/alta e espaços em branco

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

6. TENTANDO SER GENTE

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

HEADERS HTTP

7. CASOS EM QUE DEU M#RD@

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

» EUA vs Computer Fraud and Abuse Act

» Field vs Google

8. CASOS QUE FOI AMORZINHO

HTTPS://QUEROSER.TECH

OBRIGADO!Perguntas?Como me achar

» @fidelissauro» msfidelis01@gmail.com

top related