Capturando a web com Scrapy

1.150 visualizações

Publicada em

Publicada em: Tecnologia
0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.150
No SlideShare
0
A partir de incorporações
0
Número de incorporações
29
Ações
Compartilhamentos
0
Downloads
40
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Capturando a web com Scrapy

  1. 1. Capturando  a  Web  com  Scrapy   Gabriel  Freitas  
  2. 2. O  que  é  um  web  crawler?    
  3. 3. O  que  é  um  web  crawler?     •   “Web  crawler  é  um  programa  de  computador   que  navega  pela  World  Wide  Web  de  uma   forma  metódica  e  automaAzada”hEp:// pt.wikipedia.org/wiki/Web_crawler    
  4. 4. Pra  que  serve?  
  5. 5. Pra  que  serve?  
  6. 6. Estrutura  básica  de  um  web  crawler  
  7. 7. Estrutura  básica  de  um  web  crawler   •  Construção  de  requisições  HTTP    
  8. 8. Estrutura  básica  de  um  web  crawler   •  Construção  de  requisições  HTTP   •   Tratamento  da  resposta   – Composição  de  objetos   – Composição  de  novas  requisições    
  9. 9. Estrutura  básica  de  um  web  crawler   •  Construção  de  requisições  HTTP   •   Tratamento  da  resposta   – Composição  de  objetos   – Composição  de  novas  requisições   •  Persistência  de  dados    
  10. 10. Crawleando  em  Python   •  Tecnologias  comuns:  
  11. 11. Crawleando  em  Python   •  Tecnologias  comuns:   – urllib,  hEplib2,  requests    
  12. 12. Crawleando  em  Python   •  Tecnologias  comuns:   – urllib,  hEplib2,  requests   – beauAfulsoup  ou  lxml  
  13. 13. Crawleando  em  Python   •  Tecnologias  comuns:   – urllib,  hEplib2,  requests   – beauAfulsoup  ou  lxml   – json,  mysql,  xml,  csv,  sqlite,  etc.  
  14. 14. Mas  qual  o  problema?    
  15. 15. Mas  qual  o  problema?     •   Ter  que  resolver  tudo  na  mão:   – Se  Aver  autenAcação?   – Trabalhar  com  sessão,  cookie...     – HTML  mal  formatado   – Requisições  Simultâneas   – Aumento  de  pontos  de  falha   – Etc..  
  16. 16. Solução?  
  17. 17. Solução?  
  18. 18. Instalando…   •  $  pip  install  Scrapy  
  19. 19. Escolhendo  o  alvo..  
  20. 20. Criando  o  projeto   •  $  scrapy  startproject  <nome  projeto>  
  21. 21. Localizando  os  dados  
  22. 22. Localizando  os  dados   •  hEp://www.ufc.com/fighter  
  23. 23. hEp://www.ufc.com/fighter/ronda-­‐ Rousey  
  24. 24. hEp://www.ufc.com/fighter/ronda-­‐ Rousey  
  25. 25. Definindo  os  itens   •  Itens  são  os  campos  que  você  irá  pegar  
  26. 26. Definindo  os  itens  
  27. 27. IdenAficando  os  Xpaths  
  28. 28. Testando  Xpaths   •  $  scrapy  shell   hEp://www.ufc.com/fighter/ronda-­‐Rousey   – $  sel.xpath('//div[@id="fighter-­‐breadcrumb"]/ span/h1/text()').extract()   – [u'Ronda  Rousey']  
  29. 29. Gerando  o  Spider   •  $  scrapy  genspider  ufc  hEp://ufc.com  
  30. 30. Gerando  o  Spider   •  $  scrapy  genspider  ufc  hEp://ufc.com   •  Tipos  de  Spiders:   – basic   – crawl   – csvfeed   – xmlfeed  
  31. 31. Definindo  Xpaths  no  Spider  
  32. 32. Executando  o  crawler   •  $  scrapy  crawl  ufc  
  33. 33. Exportando  os  resultados   •  Em  json   – $  scrapy  crawl  ufc  -­‐o  lutadores.json  -­‐t  json   •  Em  csv   – $    scrapy  crawl  ufc  -­‐o  lutadores.csv  -­‐t  csv   •  Em  xml   – $  scrapy  crawl  ufc  -­‐o  lutadores.xml  -­‐t  xml  
  34. 34. Obrigado!   •  Contatos   – gabrielfreitas07@gmail.com   – r.com/gabrielfreitas07  
  35. 35. Referências   •  Nataliel  Vasconcelos  –  Python  Beach     •  hEp://pypix.com/python/build-­‐website-­‐crawler-­‐based-­‐ upon-­‐scrapy/   •  hEp://www.slideshare.net/previa/ scrapyfordummies-­‐15277988   •  hEp://www.slideshare.net/TheVirendraRajput/web-­‐ scraping-­‐in-­‐python   •  hEp://www.slideshare.net/obdit/data-­‐philly-­‐scrapy   •  hEp://trumae.blogspot.com.br/2014/01/scrapy-­‐bem-­‐ facinho.html    

×