YouTube

Got a YouTube account?

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

Ukrainian subtitles

← 02-01 Вступ до Розділу 2 - CS101

Get Embed Code
9 Languages

Subtitles translated from Russian Showing Revision 2 created 11/18/2013 by natasha.nikityuk.

  1. [Дейв] З поверненням та ласкаво просимо до розділу 2!
  2. Сподіваюсь, що усі ви успішно закріплюєте знання, отримані у розділі 1.
  3. Ми продовжимо поглиблювати ці знання у данному та інших розділах курсу.
  4. Наша основна мета у цьому розділі - змусити пошукового робота відшукувати не одне посилання,
  5. а усі посилання на веб-сторінці,
  6. щоб проходячи за цими посиланнями відшукувати всі більше і більше сторінок в Мережі
  7. Для цього нам знадобляться дві нові та дуже важливі концепції зі сфери комп'ютерних наук.
  8. Перша з них - це процедури. В них ми інкапсулюємо код, щоб полегшити його повторне використання.
  9. Друга - це управління перебігом виконання програми. Щоб відшукати всі посилання на сторінці, нам необхідно вміти приймати рішення та повторювати інструкції.
  10. В кінці розділу 1 ми продемонстрували, як можна здобути перший URL на сторінці -
  11. і це чудово, ми змогли відшукати свою першу ціль.
  12. Проте якщо ми бажаємо створити гарного робота,
  13. нам потрібне не лише перше,
  14. але й всі інші посилання на сторінці.
  15. Нам необхідно здобути всі ці посилання
  16. та зрозуміти, куди вони ведуть,
  17. щоб знайти ще більше сторінок для обробки, а не обмежуватись першою.
  18. Це і буде метою данного розділу, яка ще більше наблизить нас до створення пошукової системи.
  19. Щоб її досягнути, нам необхідно буде засвоїти дві дуже важливі ідеї зі сфери комп'ютерних наук.
  20. Перша - це процедури,
  21. зручний спосіб розділяти код на модулі з метою
  22. зробити його використання набагато ефективнішим.
  23. Друга - це управління процесом виконання програми.
  24. Керуючі конструкції дозволять нам шукати не одне,
  25. а всі посилання на сторінці.
  26. Отже, давайте повернемося до коду, який був написаний нами в кінці розділу 1.
  27. Ми вирішили проблему здобуття першого URL із рядка page,
  28. за умови, що в page міститься деяка веб-сторінка.
  29. Тут ми просвоїли змінній start_link
  30. результат визову методу find() рядка page,
  31. передавши до нього позицію, з якої починається посилальний тег.
  32. Потім ми ініціалізували змінну start_quote,
  33. присвоївши їй результат пошуку в рядку page
  34. першої наступної за посилальним тегом лапки.
  35. Потім ми присвоїли змінній end_quote
  36. результат визову find() рядка page,
  37. який дає нам позицію наступної лапки.
  38. А потім ми присвоїли змінній url
  39. підрядок із рядка page, що починається
  40. із символу, що йде одразу за позицією start_quote,
  41. і закінчується останнім символом перед позицією end_quote,
  42. щоб вивести цей URL на екран.
  43. Так ми змогли знайти перший URL на сторінці.
  44. Якщо б нам знадобилось знайти і другий,
  45. ми могли б повторити все заново.
  46. Ми могли б сказати: "Тепер нам необхідно рухатись далі,
  47. тому нам тепер необхідний лише залишок рядка page".
  48. Ми могли б отримати його, присвоївши змінній page
  49. її власний "хвост", що починається з позиції end_quote –
  50. і не забувайте, коли після двокрапки нічого немає,
  51. це значить вибірка з даної позиції і до самого кінця рядка -
  52. і повторити процес здобуття URL.
  53. Ми заново ініціалізуємо start_link,
  54. а потім start_quote.
  55. Тепер наш код виводить перший знайдений URL,
  56. продовжує виконуватись, змінюючи змінну page,
  57. та повторює ті ж дії,
  58. щоб вивести другий URL.
  59. Якби нам необхідно було вивести перші три URL-адреси,
  60. ми могли б повторити все заново.
  61. Отже, тепер у нас є код, який виводить перші три
  62. URL на веб-сторінці -
  63. відмотаємо до самого початку і
  64. виведемо перший URL, а потім
  65. виведемо другий URL..
  66. і так може продовжуватись до нескінченності.
  67. Комп'ютери існують для того,
  68. щоб звільнювати людей від стомливої та нудної роботи.
  69. Ми не хочемо нікого змушувати до стомливої роботи,
  70. а повторний набір цього коду знову і знову,
  71. напевно, стомить кого завгодно,
  72. крім того такий підхід не дуже-то ефективний.
  73. Бувають сторінки із сотнями посилань
  74. а бувають і такі, на яких всього лише одне-два посилання.
  75. Тому копіювати цей код сотні разів безглуздо.
  76. Завжди знайдеться сторінка, на якій знайдеться більше посилань,
  77. ніж у нас є копій цього коду,
  78. а сторінка, на якій посилань менше, викличе проблеми,
  79. оскільки в ній коду нема де буде шукати ці сотні посилань.
  80. Отже, наша мета на сьогодні - вирішити всі ці проблеми.