Return to Video

01-59 Extracting Links

  • 0:01 - 0:03
    皆さんは十分にPythonを理解できましたので
  • 0:03 - 0:05
    このレッスン最初の問題を解いてみましょう
  • 0:05 - 0:11
    ページからリンクを抽出する問題です
  • 0:11 - 0:14
    まずコードに取り掛かる前に
  • 0:14 - 0:16
    Webページについて詳しく解説します
  • 0:16 - 0:19
    Pythonの文字列については解説してきました
  • 0:19 - 0:23
    そしてWebページが長い文字列であると言いました
  • 0:23 - 0:26
    ブラウザでWebページを見た時
  • 0:26 - 0:29
    文字列が配置されているとは分かりません
  • 0:29 - 0:33
    サンプルとして私の好きなWebコミックのxkcdを
    お見せしましょう
  • 0:33 - 0:35
    皆さんがPythonを十分に学んで
  • 0:35 - 0:39
    その力で空飛ぶ気分を味わえるようになるといいですね
  • 0:39 - 0:42
    Pythonをただ使っているというだけなら
  • 0:42 - 0:45
    残りのコミックを理解するのは難しいでしょう
  • 0:45 - 0:51
    単に文字列を出力するといった
    簡単な処理に大変な労力をかけるような
  • 0:51 - 0:54
    他のスクリプト言語を皮肉っているのです
  • 0:54 - 0:58
    ですがこのレッスンでPythonを学べば
    すぐに空を飛べるようになります
  • 0:58 - 1:01
    これは文字列には見えません
  • 1:01 - 1:04
    文字列は文字の連続であることを確認しました
  • 1:04 - 1:06
    これはWebページのイメージです
  • 1:06 - 1:10
    ボタンがありテキストがあります
  • 1:10 - 1:13
    アンダーラインが出るリンクを持つものもあります
  • 1:13 - 1:16
    そしてブラウザがWebページを
  • 1:16 - 1:18
    美しく見えるように表示します
  • 1:18 - 1:22
    膨大なテキストから始まる場所に
    一体何があるのでしょう?
  • 1:22 - 1:25
    Webページ上で右クリックすると
  • 1:25 - 1:28
    ソースの表示という選択肢が出てきます
  • 1:28 - 1:31
    そこから実際のソースコードを確認できます
  • 1:31 - 1:33
    これがブラウザで表示されている内容です
  • 1:33 - 1:38
    ブラウザがリクエストを送り
    URLがアドレスバーに表示されます
  • 1:38 - 1:43
    xkcd.com/353へのリクエストを送っています
  • 1:43 - 1:47
    これがリクエストして返ってきた膨大なテキストです
  • 1:47 - 1:53
    テキストを見ることができますが
    中には難解なものもあります
  • 1:54 - 1:57
    そこで重要なのがリンクです
  • 1:57 - 2:02
    リンクの例です
    このような<a>タグでリンクは始まります
  • 2:02 - 2:06
    HTML言語ではこのような山括弧が使われます
  • 2:06 - 2:11
    そして<a href=を使ってリンクを
    始めることができます
  • 2:11 - 2:16
    それにダブルクォーテーションで
    囲まれた文字列が続きます
  • 2:16 - 2:18
    Pythonの文字列と同じようなものです
  • 2:18 - 2:22
    ダブルクォーテーションがあり
    その間にはURLが入っています
  • 2:22 - 2:26
    URLはWeb上のコンテンツの場所を示すので
  • 2:26 - 2:28
    ここにURL http:があります
  • 2:28 - 2:31
    これはWebリクエストのことです
  • 2:31 - 2:36
    あとのレッスンでhttpの意味と
    Webページリクエストのプロトコルを解説します
  • 2:36 - 2:37
    このレッスンで重要なことは
  • 2:37 - 2:42
    Webブラウザでリンクを開いた時に
    別のページを示す位置です
  • 2:42 - 2:49
    ここで見ているものは
    News/Blagのテキストの下にあるリンクで
  • 2:49 - 2:51
    このリンクをクリックすると
  • 2:54 - 2:58
    blag.xkcd.comのページに移動します
  • 2:58 - 3:01
    これはリンクを確認したページですが
  • 3:01 - 3:04
    blag.xkcd.comとなっています
  • 3:04 - 3:08
    リンクをクリックするとそのページに移動します
  • 3:08 - 3:11
    クローラ作成のため各ページで行う処理です
  • 3:11 - 3:13
    ページではリンクを見つける必要があります
  • 3:13 - 3:19
    このようなリンクを把握し
    Web上でさらにコンテンツを見つけるためたどります
  • 3:19 - 3:21
    これはWebページの閲覧に似ています
  • 3:21 - 3:27
    ページのリンクをすべてクリックし
    すべてのコンテンツを見るためにすべてのリンクを
  • 3:27 - 3:30
    実際にたどるのは時間のムダ使いでしょう
  • 3:30 - 3:34
    そこで作業を自動的に行うWebクローラを作成します
  • 3:34 - 3:36
    Webリクエストから返されたテキストを受け取り
  • 3:36 - 3:41
    テキストのリンクを見つけるのが
    レッスンの最終目標です
  • 3:41 - 3:45
    テキストは<a href=で始まるタグになっていて
  • 3:45 - 3:52
    そのタグからリンク先の
    WebページのURLを抽出します
  • 3:52 - 3:56
    これらは移動するためにクローラで使用するURLです
  • 3:56 - 3:58
    そこで文字列で学んできたことや
  • 3:58 - 4:01
    変数で学んできたことを活用します
  • 4:01 - 4:04
    皆さんには十分な知識があるはずです
  • 4:04 - 4:07
    必要なのはタグの開始を見つけることです
  • 4:07 - 4:10
    タグの開始とはこのテキストのことで
  • 4:10 - 4:15
    私たちが探していた<a href=の部分と
    一致するものです
  • 4:15 - 4:21
    ご覧いただいているように
    タグはすべて<a href=で始まります
  • 4:21 - 4:26
    すべてのWebページが
    同じ構造をしているわけではありません
  • 4:26 - 4:28
    タグを作成する方法は他にもたくさんあります
  • 4:28 - 4:30
    例えばaが大文字Aの場合もあります
  • 4:30 - 4:33
    aとhrefの間のスペースが多い場合もあります
  • 4:33 - 4:35
    ここにはダブルクォーテーションは必要ありません
  • 4:35 - 4:37
    今はすべてのWebページが
  • 4:37 - 4:40
    この構造に従っていると仮定します
  • 4:40 - 4:44
    それぞれのリンクは余分なスペースなどが
  • 4:44 - 4:48
    ついていない<a href=から始まります
  • 4:48 - 4:50
    そしてイコール、ダブルクォーテーション、URL
  • 4:50 - 4:53
    さらにダブルクォーテーションで閉じます
  • 4:53 - 4:56
    このような<a href=の文字列を探すのです
  • 4:56 - 5:00
    これにはダブルクォーテーションが続きます
  • 5:00 - 5:03
    次はURLですが実に重要な要素です
  • 5:03 - 5:06
    Webページ上のURLを見つけなければなりません
  • 5:06 - 5:10
    そして閉じるためのダブルクォーテーションが続きます
  • 5:10 - 5:13
    さらにタグを閉じる要素があります
  • 5:13 - 5:16
    両辺にはたくさんのテキストがついています
  • 5:16 - 5:17
    これが私たちに必要な
  • 5:17 - 5:23
    リンクのあるタグ、タグ内のリンク
    そしてURLを見つけるということです
  • 5:23 - 5:30
    ページコンテンツを使い
    変数から始めると仮定しましょう
  • 5:30 - 5:31
    該当ページを呼び出します
  • 5:31 - 5:36
    このようなページコンテンツの取得方法については
    今は気にしなくていいです
  • 5:36 - 5:39
    代わりに関数を設定すればいいのです
  • 5:39 - 5:45
    今扱うコードに関しては
    ページがすでに設定されていると仮定します
  • 5:45 - 5:50
    文字列として格納されているWebページの
    コンテンツを含んでいるとします
  • 5:50 - 5:54
    目標は最初のリンクのURLを見つけることです
  • 5:54 - 5:58
    これには手順があり
    まず必要なのはリンクの開始を見つけること
  • 5:58 - 6:00
    <a href=の場所を見つけることです
  • 6:00 - 6:04
    最初に目に入る文字列を探すだけではありません
  • 6:04 - 6:06
    なぜならURLのない他の文字列が
  • 6:06 - 6:09
    ページ上にはたくさんあるからです
  • 6:09 - 6:13
    理解は十分かと思いますので小テストにしましょう
  • 6:13 - 6:16
    小テストの目標は変数start_linkを
  • 6:16 - 6:18
    1つ目の<a href=がある位置の値に
  • 6:18 - 6:21
    設定するPythonコードを書くことです
  • 6:21 - 6:24
    1つ目のタグはページ内にあるので
  • 6:24 - 6:28
    ページはWebページのコンテンツで始まると
    想定しなければなりません
  • 6:28 - 6:31
    そして1つ目の<a href=がある場所を探します
  • 6:31 - 6:35
    それがページ上の1つ目のリンクになります
Title:
01-59 Extracting Links
Description:

01-59 Extracting Links

more » « less
Video Language:
English
Team:
Udacity
Project:
CS101 - Intro to Computer Science
Duration:
06:36

Japanese subtitles

Revisions