YouTube

Got a YouTube account?

New: enable viewer-created translations and captions on your YouTube channel!

Portuguese, Brazilian subtitles

← PS 14-03 Urllib

Sem descrição

Get Embed Code
4 Languages

Showing Revision 6 created 09/08/2013 by Claudia Solano.

  1. Ok, o que eu quero fazer agora
  2. é entrar no Python, e vamos usar
  3. uma biblioteca do Python para fazer
    uma requisição de HTTP
  4. pra você ver ver como funciona,
  5. e então preparar alguns testes.
  6. No Python temos uma biblioteca chamada urllib2.
  7. Também existe a urllib1,
  8. e esta é a evolução do Python
    na sua frente aqui.
  9. Vamos usar o 2, na maior parte.
  10. A urllib1 tem poucas funções úteis,
  11. e quando a gente for usá-los, vou
    incluí-los nos documentos.
  12. A propósito, urllib2 tem uma função chamada url open,
  13. e podemos fornecer uma url aqui pra download.
  14. Vamos dizer que eu esteja baixando google.com.
  15. Bem, preciso ter certeza de que salvei isso.
  16. Normalmente salvo em uma variável chamada P de página.
  17. Provavelmente, nem é o conceito certo,
    mas tenho esse hábito.
  18. Eu sempre uso P quando uso url open.
  19. Se você rodá-lo, vamos ter esse objeto P,
  20. que na verdade, basicamente, é um objeto de arquivo.
  21. No Python, objetos de arquivo--
  22. basicamente, o objeto de arquivo, é um
    objeto que tem um método read.
  23. E você pode chamar um read aqui pra obter os contents.
  24. Vou mostrar os contents no C e vou chamar o read no P.
  25. Okay, chamamos a url open nessa url,
  26. atribuindo-a nessa variável P,
  27. e aí chamamos o read na resposta
  28. e atribuímos a uma variável chamada C.
  29. Agora, se fossemos avaliar o C, uma parede de texto,
  30. que é o que estamos esperando.
  31. Isso é na verdade a página principal do Google.
  32. Se você se recordar na aula anterior,
  33. basicamente fizemos a mesma coisa
  34. usando o telnet ou o curl.
  35. Dá pra fazer a mesma coisa no Python.
  36. Agora temos a variável C que contém
    toda essa resposta nela,
  37. e podemos manipulá-la em nossos programas,
  38. que é o que vamos fazer bastante.
  39. Vamos dar uma olhada no que temos naquele objeto P.
  40. Podemos usar o dir incluído na função do Python
  41. para examinar um objeto.
  42. Assim podemos ver os métodos
    e atribuições no nosso objeto P,
  43. e podemos ver dois deles que provavelmente
    são interessantes pra gente--
  44. headers, por exemplo, and get url é outro.
  45. Provavelmente getcode é o status do código.
  46. Geralmente é como eu trabalho.
  47. Quando você não conhece uma biblioteca super bem,
  48. você pode usar o dir para examinar o tipo de objeto.
  49. Vamos dar uma olhada em alguns desses.
  50. Temos também uma url. Vamos ver o que tem nela.
  51. Esta é a url que requisitamos. Sem grande surpresa.
  52. Podemos ver o headers.
  53. Isso é um HTTP message instance.
  54. Agora, acontece que eu sei que isso é um dicionário,
  55. e dicionários tem uma função neles
  56. chamada items.
  57. Se fôssemos rodar os items no Python,
  58. é o que você pode chamar em qualquer dicionário--items--
  59. pra ver as chaves e os valores,
  60. e vai imprimi-los, geralmente, muito bom pra você.
  61. Podemos ver todos os cabeçalhos
    que temos por traz do Google.
  62. Isso é um dicionário atual, podemos dizer p.headers,
  63. por exemplo, content-type,
  64. e conseguimos ver o content type
    que temos por trás do Google.
  65. Isto é bem interessante, estamos
    recebendo um charset=iso,
  66. no qual-- estava esperando UTF 8,
  67. mas, ei, você aprende todos os dias.
  68. No futuro, especialmente para os
    seus usuários do Windows
  69. que tinham problema em usar o telnet,
  70. você pode usar apenas o urllib
    e receber a mesma resposta.
  71. O que eu gostaria que você usasse
    um pouco essa biblioteca
  72. no formulário de um teste.