Webスクレイピングのプログラムを作成するにあたって役立つ情報をまとめました.

1.Webスクレイピングとは

ウェブスクレイピングWeb scraping)とは、ウェブサイトから情報を抽出するコンピュータソフトウェア技術のこと。ウェブ・クローラー(Web crawler) あるいはウェブ・スパイダー(Web spider)とも呼ばれる。

— Wikipedia: ウェブスクレイピング

2.HTTPヘッダ

実際にWebページをたどっていく際には(1)HTTPリクエストを投げる→(2)レスポンスを解析するという処理を繰り返す必要があります.

このリクエストを投げるとき、結果を解析するときに重要なのがHTTPヘッダの情報です.

リクエストのヘッダを正しく設定することで想定したレスポンスを取得できるようになります.またレスポンスのヘッダを解析することで、コンテンツ部分の解析を効率的・効果的に行うことができるようになります.

(1)リクエスト フィールド

User-Agent

ブラウザ情報を表す.正しく設定されていないとエラーを返すサーバが存在する.

実在するUserAgent情報を利用すればエラーとはならないが、IE専用サイトやモバイル専用サイトも存在するので使い分ける必要がある.

例 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/21.0

Referer

リンク元のWebページを示すURL.これが正しく設定されていないとエラーを返すサーバが存在する.

例 Referer: http://yahoo.co.jp

Cookie

前回接続時にレスポンスヘッダのSet-Cookieに設定されていた値を設定しないとエラーを返される場合がある.

Cookieを利用してセッション管理をしているウェブサイト、ウェブアプリにリクエストを送る際には設定が必須となる.

例 Cookie: $Version=1; Skin=new;

 

 

(2)レスポンス フィールド

Content-Type

コンテンツのMIMEタイプを表します.この値に応じてその後の処理を振り分けることになる重要な値です.

全タイプについては以下のサイトを参照.

http://www.iana.org/assignments/media-types/media-types.xhtml

スクレイピングで主に利用するのは以下のタイプです.

HTMLが返って来うるもの.

  • text/html : HTMLが返ってくるのはこれ
  • text/plain : Apacheの設定によっては、htmlのコンテンツがこのMIMEタイプで返ってくる.

その他スクレイピング中によく判定するもの

  • image/* : 画像コンテンツ
  • video/* : 映像コンテンツ
  • text/javascript : javascript
  • application/javascript : javascript
  • text/css : css

Content-Length

コンテンツの長さを8bit byteで表示する.

 

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *