Download - Web scraping com python
WEB SCRAPING COM PYTHON
Matheus FidelisDevOps na Superlógica TecnologiasTwitter: @fidelissauroWeb: http://nanoshots.com.brEmail: [email protected]
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» [email protected]