Scraping by examples

1.129 visualizações

Publicada em

Learn how to scrap web pages in Ruby, Javascript (and more, soon).

Publicada em: Tecnologia
  • Seja o primeiro a comentar

Scraping by examples

  1. 1. Scrapingby examples Alexandre Gomes
  2. 2. http://creativecommons.org/licenses/by-nc/3.0/br/
  3. 3. Primeiros resultados definitivos do Censo 2010:população do Brasil é de 190.755.799 pessoasO Brasil tem 190.755.799 habitantes. É o queconstata a Sinopse do Censo Demográfico 2010, quecontém os primeiros resultados definitivos do XIIRecenseamento Geral do Brasil... 29/04/2011 http://www.ibge.gov.br
  4. 4. Resumo do Censo 2010
  5. 5. Resumo do Censo 2010
  6. 6. Qual a relação entre os índices dealfabetização e a proporção feminina?
  7. 7. Exemplo mulheres da região 7.859.539 = = 0.49total de pessoas da região 7.859.539 + 8.004.915 alfabetizados* da região 11.326.492 = = 0.89total de pessoas* da região 12.670.041 * acima de 10 anos de idade
  8. 8. E nas demaisregiões?
  9. 9. Scraping by Examples
  10. 10. Nokogiri
  11. 11. #1 Acessar a página que contém o dado desejado
  12. 12. teste
  13. 13. testecodigo
  14. 14. $ rspec spec/ibge_censo2010_spec.rb:8Run filtered using {:line_number=>8}IBGECenso2010 should open page with "Razão de sexo, populaçãode homens e mulheres"Finished in 44.4 seconds1 example, 0 failures$
  15. 15. #2 Recuperar odado desejado
  16. 16. Antes, entenda aestrutura da página
  17. 17. <table> <thead>...</thead> <tfoot> <tr> <td>...</td> <td>...</td> <td>...</td> <td>...</td> <td>...</td> </tr> </tfoot> <tbody>...</tbody> Estude o caminho do dado na árvore</table> DOM
  18. 18. Observe IDs eclasses CSS quepodem ser úteis.
  19. 19. class="td_numeros"
  20. 20. ".td_numeros"[
  21. 21. ".td_numeros"[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
  22. 22. 1º dado de que precisamos. (numerador da fórmula)[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
  23. 23. 2º dado de que precisamos. (para o cálculo do denominador da fórmula)[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
  24. 24. mulheres da região N dados[5] =total de pessoas da região N dados[4] + dados[5] [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
  25. 25. teste
  26. 26. code
  27. 27. $ rspec specIBGECenso2010 razao de sexo should open page with "Razão de sexo,população de homens e mulheres" should get number of womenFinished in 1.78 seconds2 examples, 0 failures
  28. 28. teste
  29. 29. code
  30. 30. #3 Recuperar orestante de dados desejados
  31. 31. ...
  32. 32. #4 ApresentaçãoWeb do scrapping
  33. 33. application.rb(...)
  34. 34. application.rb(...)
  35. 35. index.erb(...)
  36. 36. http://datavisualization.ch/tools/13-javascript-libraries-for-visualizations
  37. 37. rme dos o cha á na ups est m ash ção visu aliza diferenciada de dadoshttp://datavisualization.ch/tools/13-javascript-libraries-for-visualizations
  38. 38. #5 Visualização(ainda tosca) do scrapping
  39. 39. #6 Visualizaçãodiferenciada da informação
  40. 40. ?
  41. 41. Agora, a mesma coisa, apenas comJavascript
  42. 42. #1 Acessar a página que contém o dado desejado
  43. 43. test
  44. 44. code
  45. 45. #2 Recuperar odado desejado
  46. 46. test
  47. 47. code
  48. 48. #3 Recuperar orestante de dados desejados
  49. 49. ...
  50. 50. #4 ApresentaçãoWeb do scrapping
  51. 51. index.html
  52. 52. index.html
  53. 53. index.html
  54. 54. index.html
  55. 55. index.html(...)
  56. 56. index.html(...)
  57. 57. index.html(...)
  58. 58. index.html(...)
  59. 59. http://chart.apis.google.com/chart?chxt=y&chbh=a&chs=500x300&cht=bvg&chco=A2C180,3D7930 &chd=t:49,51,51,50,50|89,82,94,95,93 &chdl=Women|Literates&chp=0.033
  60. 60. código disponível em...
  61. 61. P&R
  62. 62. http://tinyurl.com/AvaliacaoSOO14

×