YouTube

Got a YouTube account?

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

Chinese, Traditional subtitles

← 02-01 Introduction to Unit 2 - CS101

Get Embed Code
9 Languages

Showing Revision 1 created 12/02/2012 by Shalley Tsay.

  1. 歡迎回到第二單元!
  2. 我希望你對第一單元中所學的知識覺得有信心
  3. 我們要在這單元以及課程的其餘部分,繼續建立電腦知識
  4. 這個單元的主要目標,是要建立網頁蜘蛛,
    並不僅僅從頁面裡取得一個連結 (link)
  5. 而是取得頁面裡的所有連結 links
  6. 所以,我們可以跟隨這些 links,
    並在網路上收集更多、更多的頁面。
  7. 為了做到這點,我們需要學習電腦科學中的兩個重要觀念
  8. 第一個是程序 (procedure),它是包裝程式碼的方法,
    使得我們可以更容易地再次使用它
  9. 第二個是控制 (control),我們需要方法來做決定、
    做重複的事,以找出頁面上的所有 links
  10. 在第一單元結尾所學到的程式是一種方法,
    能從網頁中擷取第一個 url
  11. 那非常好,我們可以找到第一個標靶 (target)
  12. 但是,如果我們想要建立一個好的網頁蜘蛛 (crawler)
  13. 我們不只關心第一個 link
  14. 我們關心網頁上所有的 links
  15. 我們需要擷取所有的 links
  16. 找出這些 link 指向何處
  17. 這樣我們就能找到更多頁面可以爬行 (crawl),
    而不只有第一個
  18. 這是本門課為了建立網路瀏覽器 (web browser)
    所定的目標
  19. 為了達成目標,我們要學習電腦科學中的兩個重要觀念
  20. 第一個是程序 (procedure)
  21. 它是包裝程式碼的方法
  22. 所以我們能勝於以往,以更有效的方式來使用它
  23. 第二個是控制 (control)
  24. 控制結構 (control structures) 會幫助我們
  25. 持續地找出頁面上的所有 links
  26. 所以,讓我們先回想一下,第一單元結尾所學到的程式
  27. 我們解決了從頁面裡擷取第一個 url 的問題
  28. 我們假設 page 被初始化為某個網頁的內容
  29. 我們把變數 start-link 初始化為
  30. 呼叫 page.find 所得到的結果
  31. 傳入了連結標籤 (link tag) 的起點
  32. 然後,把變數 start-quote 初始化為
  33. 呼叫 page.find 所得到的結果
  34. 連結標籤 (link tag) 後的第一個引號
  35. 接著,把變數 end-quote 初始化為
  36. 呼叫 page.find 所得到的結果
  37. 找到了 start-quote 後的第一個引號
  38. 然後,我們指定了變數 url
  39. 它擷取自頁面
  40. 從 start-quote 之後的字元
  41. 一直到 end-quote 之前的字元
  42. 我們可以印出 url
  43. 這樣就能找到頁面上的第一個 url
  44. 如果想要找到第二個 url
  45. 可以將上述過程再做一遍
  46. 現在我們想要更進一步
  47. 所以,我們只看頁面的剩餘部分
  48. 我們可以透過更新變數 page
  49. 從 end-quote 開始,
    將頁面剩餘部分的結果指定給變數 page
  50. 記住,當冒號之後是空白時
  51. 就意謂著,從這個位置一直選到最後
  52. 然後,我們可以將前面的過程再做一遍
  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. 有些頁面有數以百計的連結 (link)
  74. 但也有些頁面只有一到兩個 link
  75. 所以將這些程式複製上百次是行不通的
  76. 總有一些網頁上的 link 數
  77. 超過我們複製的程式
  78. 而其他 link 數少於我們複製數量的程式,
    會給我們帶來麻煩
  79. 因為我們找不到這些 links
  80. 所以,我們今天的目標是解決這些問題