質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.40%

  • HTML

    12182questions

    HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

  • Webサイト

    1324questions

    一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

  • Webサーバー

    505questions

    Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Webスクレイピングについて教えていただけないでしょうか?

受付中

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,136

dlrowolleh

score 112

お世話になります。
Webスクレイピングをするにあたっての知識などについて知りたいと思っており、質問させていただきます。

前提

スクレイピングするサイトには、RSSやAPIが提供されていません。
(APIやRSSが提供されていなかったため、スクレイピング・保存をしようという考えに至った次第であります。)

試したこと

  1. wget -r -l1 http://www.example.com/hogehoge.php?Number=0123456
    だと、カレントディレクトリにexample.comディレクトリが作成され、その中に
    hogehoge.php?Number=0123456 hogehogeTitle.php?Number=0123456 hogehogeTable.php?Number=0123456
    が保存されます。

  2. wget -r -l1 -A .php http://www.example.com
    だとexample.comディレクトリが作成されるだけで、中身が空になります。
    そして、

拒否すべきなので、hogehoge.php?Number=0123456 を削除しました。
拒否すべきなので、hogehogeTitle.php?Number=0123456 を削除しました。
拒否すべきなので、hogehogeTable.php?Number=0123456 を削除しました。

と、気になるメッセージが表示されます。
この原因は何でしょうか?

  1. export LANG=ja_JP.UTF-8; wget -w10 -nd -l1 -r -O /home/hoge/Desktop/2016/sample/html/田中/$(date '+%Y_%m_%d_%H:').html http://www.example.com
    と実行すると、/home/hoge/Desktop/2016/sample/html/田中/に実行した時の年月日.htmlが一つ作成されファイルの内容は、
    hogehoge.php?Number=0123456 hogehogeTitle.php?Number=0123456 hogehogeTable.php?Number=0123456
    のファイルの中身を全部まとめたものになっています。
    そして、
警告: -r や -p と -O を一緒に使うと、ダウンロードした内容は、
全て指定された一つのファイルに入ることを意味します。
          (省略)
robots.txtを読み込んでいます、エラーは無視してください。
(ドメイン名やIPアドレス名):80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 404 Not Found
実行年月日 エラー 404: Not Found。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 容量 (容量K) [text/html]
`/home/hoge/Desktop/2016/sample/html/田中/年月日.html' に保存中

     0K .......                                               100%


と気になるメッセージが表示されます。

疑問点

  •  -A .php-Aオプションを追加しただけでディレクトリは作られたものの、中身は空になった原因は何だと考えられるでしょうか?

  • hogehoge.php?Number=0123456hogehogeTitle.php?Number=0123456は要りません。
    hogehogeTable.php?Number=0123456だけを/home/hoge/Desktop/2016/sample/html/田中/保存したいのですが、どのようにすればいいでしょうか?

  • ウェブページには、

  1. ステートレスなページ
  2. ステートフルなページ
  3. javascript等によってクライアント側でページを組み立てるタイプのページ

等があるとのことですが、このページはどれに該当すると考えられるでしょうか?

また、

  • webページにはrobot.txtというものがあると聞いたことがあるのですが、このサイトにはrobot.txtがあると考えられますか?
    (このHTTP による接続要求を送信しました、応答を待っています... 404 Not Foundは何が見つからなかったのか。webページrobot.txt?仮にwebページだとすると404 Not Foundなのにデータを保存できるじゃないか!仮にrobot.txtだとすると404 Not Foundなのに拒否すべきなので削除しましたrobot.txtがあるじゃないか!)

  • robot.txtはどこにあると考えられるでしょうか?

  • robot.txtにどんなことが書いてあるか見たいのですが、どうすれば見られるでしょうか?(そもそもrobot.txtは閲覧可能か?)

  • 相手に負荷をかけないスクレイピングをするための遅延処理はどのくらいが適切でしょうか?(サイトにより差があると思われるが、それを知る方法はないか?、常識のある人間がブラウザを使用して閲覧する場合、相手にかける負荷はどのくらいと言われているか?)

補足情報(言語/FW/ツール等のバージョンなど)

ubuntu15.10の環境です。

長文失礼しました。迷走しております。
内容に不足があれば追記します。
何卒よろしくお願いします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

0

wget の -A については、suffix として、判断されていて、一致しないから削除されているのだと思います。
機能については、マニュアルを読んでオプションの意味を理解するようにしましょう。

具体的なサイトがわからないので、サイトの形態については、判断できないです。

あと、robots.txt ですね。
サイトのルートにあります。

普通にブラウザでひらけます。例えば、teratail の場合、
https://teratail.com/robots.txt
です。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/10/14 13:47

    はじめまして。
    ご回答いただきましてありがとうございます。
    ドメイン/robots.txt
    でやってみたのですが、
    Not Found
    The requested URL /robots.txt was not found on this server.
    と返ってきました。
    気がついた点なのですが、
    ドメインにwwwがついていません。
    firefoxのタブには
    http://

    https://
    が表示されず、
    ドメイン.jp
    だけ表示されています。
    …どうなっているのでしょうか??
    知識が足りず、二進も三進もいきません。
    何卒ご教授いただけましたら幸いです。

    キャンセル

0

お勧めの書籍

下記の書籍に色々情報がありますので、お勧めです。

「Spidering hacks―ウェブ情報ラクラク取得テクニック101選」

頑張ってください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.40%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • HTML

    12182questions

    HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

  • Webサイト

    1324questions

    一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

  • Webサーバー

    505questions

    Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。