YouTube

Got a YouTube account?

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

Spanish subtitles

← 02-01 Introducción a la Unidad 2 - CS101

sin descripción

Get Embed Code
9 Languages

Showing Revision 2 created 12/05/2012 by Angelo Córdova.

  1. [Dave] ¡Bienvenidos nuevamente a la Unidad 2!
  2. Espero que todos estén ganado confianza en las cosas que aprendieron en la unidad 1.
  3. Vamos a continuar construyendo sobre ellas en esta unidad así como en el resto del curso.
  4. Nuestra meta principal en esta unidad es construir un "web crawler", que en vez de tan sólo encontrar un enlace en la página,
  5. encuentre todos los enlaces en una página,
  6. para de esta manera seguir estos enlaces y recolectar más y más páginas en la web.
  7. Para hacer esto necesitamos dos grandes nuevos conceptos en la ciencia de la computación.
  8. El primero es procedimientos. Los procedimientos son una forma de empaquetar código para poder reutilizarlo con más facilidad.
  9. El segundo es control. Necesitamos una forma de ser capaces de tomar decisiones, y de repetir (acciones), para encontrar todos esos enlaces en una página.
  10. Lo que vimos al final de la unidad 1 fue una manera de extraer la primera URL desde una página web--
  11. eso es excelente-- pudimos encontrar el primer objetivo.
  12. Pero si queremos construir un buen "crawler",
  13. no necesitamos preocuparnos solamente del primero,
  14. necesitamos preocuparnos por todos los enlaces en la página.
  15. Necesitamos extraer todos esos enlaces--
  16. averiguar hacia donde apuntan--
  17. entonces encontraremos muchas más páginas para revisar que sólo la primera.
  18. Entonces, esa es la meta para esta clase hasta construir un navegador web.
  19. Para hacer eso, vamos a aprender dos ideas realmente grandes en la ciencia de la computación.
  20. La primera es sobre procedimientos,
  21. y eso es una manera de empaquetar código para poder usarlo
  22. de una manera mucho más útil que antes.
  23. la segunda es sobre control.
  24. Las estructuras de control nos entregarán una manera de poder seguir
  25. para encontrar todos los enlaces en una página
  26. Vamos a recordar el código que teníamos al final de la unidad 1.
  27. Resolvimos este problema de extraer la primera URL desde la página--
  28. asumimos que la página estaba inicializada a los contenidos de alguna página web.
  29. Inicializábamos la variable "start_link"
  30. al resultado de invocar "find" en "page",
  31. pasándole el inicio de la etiqueta del enlace.
  32. Luego, inicializábamos la variable "start_quote"
  33. al resultado de encontrar, en la página,
  34. la primera comilla que seguía a la etiqueta del enlace.
  35. Luego, inicializábamos la variable "end_quote"
  36. al resultado de invocar "find" en "page",
  37. para encontrar la primera comilla que seguía a la comilla inicial
  38. Y, luego, asignábamos a la variable "url"--
  39. extrayendo desde la página--
  40. desde el carácter siguiente de "start_quote",
  41. hasta el carácter justo antes de "end_quote",
  42. podemos imprimir esa URL.
  43. Esto funciona para encontrar la primera URL en la página.
  44. si quisiéramos encontrar la segunda,
  45. podríamos hacer todo de nuevo.
  46. Diríamos, ahora queremos avanzar
  47. entonces sólo buscaríamos en el resto de la página.
  48. Podríamos hacerlo actualizando la variable "page",
  49. asignándole el resultado del resto de la página, comenzando desde "end_quote"--
  50. y, recordando, cuando hay un espacio en blanco después de la coma
  51. significa seleccionar desde esta posición, hasta el final (de la página)
  52. y luego haríamos todas las mismas cosas.
  53. Haríamos "start_link" de nuevo...
  54. "start_quote" de nuevo...
  55. Ahora tendriamos código que imprimiría la primera URL--
  56. seguiría, actualizándo la variable "page"--
  57. y luego haría exactamente lo mismo--
  58. imprimiéndo la segunda URL.
  59. Si quisiéramos imprimir las primeras tres,
  60. podríamos hacerlo de nuevo...
  61. Ahora, tendríamos código para imprimir las primeras tres
  62. URL's de la página--
  63. desplacémonos hasta arriba-- entonces tienes--
  64. imprimir la primera--seguir--
  65. imprimirla segunda--seguir--
  66. esto podría seguir para siempre.
  67. La razón por la que tenemos computadores
  68. es para salvar a los humanos de hacer montones de trabajo tedioso.
  69. No queremos que los humanos hagan montones de trabajo tedioso--
  70. ciertamente, escribiendo esto, una y otra y otra vez,
  71. sería realmente tedioso,
  72. y ni siquiera funcionaría tan bien.
  73. Tenemos páginas con cientos de enlaces,
  74. pero hay otras con tan sólo uno o dos.
  75. Entonces, no tendría sentido copiar esto cientos de veces.
  76. Siempre habrá alguna página que tenga más enlaces
  77. que las copias que tengamos--
  78. y con cualquier página que tenga menos copias, tendríamos problemas
  79. porque no encontraríamos ninguno de esos enlaces.
  80. Entonces, nuestra meta de hoy es resolver todos esos problemas.