YouTube

Got a YouTube account?

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

Spanish, Mexican subtitles

← PS 14-03 Urllib

Get Embed Code
4 Languages

Showing Revision 2 created 09/05/2013 by J. Michelle Hinojosa.

  1. Bien, ahora me gustaría
  2. ir a Python y que juguemos con
  3. una biblioteca Python para hacer realmente
    una petición de HTTP,
  4. para que veas como funciona,
  5. y prepararte para algunas pruebas.
  6. En Python tenemos una biblioteca que se llama urllib2
  7. también está urllib1.
  8. Esta sería la evolución misma de Python ante tus ojos.
  9. Vamos a usar la 2 mayormente.
  10. urllib1 tiene varias funciones útiles propias,
  11. y cuando las usemos, las incluiré en los documentos.
  12. En fin, urllib2 tiene una función llamada urlopen
  13. donde podemos ingresar una URL para descargar.
  14. Supongamos que descargo google.com
  15. Debo asegurarme de guardarlo.
  16. Suelo guardarlo en una variable a la que llamo P de página.
  17. No se si es lo correcto, pero ya es una costumbre.
  18. Siempre uso P cuando uso urlopen
  19. Si lo ejecutamos, nos trae un objeto P
  20. que de hecho es un file object.
  21. en Python, file object
  22. es un objeto que tiene un método de lectura.
  23. Puedes poner read para traer el contenido.
  24. Voy a mostrar el contenido en C haciendo read en P
  25. Pedimos urlopen a esta URL
  26. la guardamos en la variable P
  27. y le pedimos read a la respuesta
  28. y la guardamos en una variable C.
  29. Si evaluamos C, obtenemos un muro de texto,
  30. era lo que esperabamos.
  31. Entonces esto sería la pagina principal de Google.
  32. En esta clase ya vimos
  33. que podemos lograr lo mismo
  34. usando telnet o curl
  35. Se puede hacer lo mismo en Python.
  36. Ahora tenemos esta variable C
    que tiene toda esta respuesta dentro,
  37. y podemos manipularla en nuestros programas.
  38. Es algo que haremos bastante.
  39. Veamos qué tenemos en el objeto P
  40. Podemos usar la función dir
  41. para examinar el objeto.
  42. Ahora podemos ver los métodos y atributos del objeto P
  43. hay varios que seguramente nos interesarán.
  44. headers es uno y geturl es otro.
  45. getcode es seguramente el código de estado.
  46. generalmente trabajo así.
  47. Cuando no conoces bien una biblioteca,
  48. puedes usar dir para examinar el objeto.
  49. Observemos algunos más detenidamente.
  50. También tenemos un url
    Veamos que tiene dentro.
  51. Es el URL que solicitamos. No es sorpresa.
  52. Podemos mirar headers.
  53. este es un HTTP Message instance.
  54. Yo ya sé que esto es un diccionario,
  55. y los diccionarios tienen una función
  56. que se llama items.
  57. si corremos items en python,
  58. items -lo puedes llamar en cualquier diccionario,
  59. para ver keys y values,
  60. y amablemente las imprimirá para ti.
  61. Podemos ver todos los headers que trae de Google.
  62. Es un verdadero diccionario
    así que podemos poner p.headers
  63. por ejemplo, content type
  64. y podemos ver el content type que trae de Google.
  65. Es interesante que sea un ISO charset,
  66. esperaba que sea UTF 8
  67. pero bueno, todos los días se aprende algo nuevo.
  68. Si en algún momento los usuarios de Windows en especial
  69. tienen problemas al usar telnet
  70. pueden usar urllib y obtener la misma respuesta.
  71. Ahora me gustaría que jueguen un poco con esta biblioteca,
  72. haciendo una prueba.