メインメニューを開く

「ウェブ・スクレイピング」を編集中

警告: ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。ログインまたはアカウントを作成すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。

この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。

最新版 編集中の文章
1行目: 1行目:
'''ウェブ・スクレイピング'''([[英語]]:web scraping)とは、[[ウェブ]]上の[[HTML]]などから機械的に[[データ]]を抜き出すことを言う。単に「スクレイピング」と呼ばれることも多い。
+
'''ウェブ・スクレイピング'''([[英語]]:web scraping)とは、[[ウェブ]]上の[[HTML]]などから機械的に[[データ]]を抜き出すことを言う。単にスクレイピングと呼ばれることも多い。
  
 
==概要==
 
==概要==
8行目: 8行目:
 
*ウェブスクレイパーでガリガリ解析
 
*ウェブスクレイパーでガリガリ解析
 
実際には[[ウェブクローラー]]が取得した大量の[[データ]](いわゆる[[ビッグデータ]])から[[データマイニング]]を行う[[プログラム]]的な意味合いが強いが、[[ウェブ魚拓]]的な用途を除けば加工せずに扱うこと自体が非常に稀であるため、[[ウェブクローラー]]と区別するのが面倒なのでクローラーの一部として扱われることが多い。
 
実際には[[ウェブクローラー]]が取得した大量の[[データ]](いわゆる[[ビッグデータ]])から[[データマイニング]]を行う[[プログラム]]的な意味合いが強いが、[[ウェブ魚拓]]的な用途を除けば加工せずに扱うこと自体が非常に稀であるため、[[ウェブクローラー]]と区別するのが面倒なのでクローラーの一部として扱われることが多い。
 
リアルタイムに近い挙動をするものであれば、あたかも[[ウェブAPI]]を叩いているかのように利用することができる。
 
 
また、[[AJAX]]の普及などに伴い本来は[[HTML]]上の[[JavaScript]]で取得している非公式の[[ウェブAPI]]を直接的に叩き、[[データ]]を抜き取るような手法も確認されている。
 
  
 
==手法==
 
==手法==
 
[[プログラミング言語]]でやる場合にもっとも手軽なのは[[正規表現]]でぶっこ抜くという手法である。
 
[[プログラミング言語]]でやる場合にもっとも手軽なのは[[正規表現]]でぶっこ抜くという手法である。
 
これは極端に言えば古くから[[UNIX]]の[[sedコマンド]]などで行われていたデータ加工となんら変わらない。
 
これは極端に言えば古くから[[UNIX]]の[[sedコマンド]]などで行われていたデータ加工となんら変わらない。
 
もう少し複雑なものでは専用のHTMLパーサー([[HTML]]を解析できるライブラリ)を使用してぶっこ抜くという手法が用いられる。
 
これらは内部的には上記の正規表現を用いたものから、[[XML]]に変換して解析を行うもの、独自の解析を行うものなど様々である。
 
 
さらに既存の[[ウェブブラウザ]]のエンジンである[[Gecko]]や[[WebKit]]などを用いて[[JavaScript]]の挙動まで再現してぶっこ抜くという手法もある。
 
たとえば[[.NET Framework]]で[[GeckoFX]]を用いれば「DOMのreadyイベントを待ってから解析を開始する」などといったことができる。
 
  
 
==主なライブラリ==
 
==主なライブラリ==
31行目: 21行目:
 
===Ruby===
 
===Ruby===
 
*[[Nokogiri]]
 
*[[Nokogiri]]
 
 
===.NET===
 
===.NET===
*[[AngleSharp]]
 
*: 最近の流行りらしい。
 
 
*[[Html Agility Pack]]
 
*[[Html Agility Pack]]
 
*:かなり精度は高い。手軽。並列処理にも強い。
 
*:かなり精度は高い。手軽。並列処理にも強い。
 
*[[GeckoFX]]
 
*[[GeckoFX]]
*:[[Firefox]]そのものを利用する。[[iOS]]や[[Android]]のアプリ開発で頻出する[[WebView]]に類似するもので、[[HTML5]]かつほぼ[[JavaScript]]だけで描画を行っているページですら完璧にぶっこ抜くことが出来てしまう。
+
*:[[Firefox]]そのもの。[[HTML5]]かつほぼ[[JavaScript]]だけで描画を行っているページですら完璧にぶっこ抜くことが出来てしまう。
 
 
=== その他 ===
 
* [[Selenium]]
 
*: あらゆる[[言語]]に[[移植]]されているぞ。速度と[[メモリリーク]]させ無視できるなら無敵だ。
 
  
 
==関連項目==
 
==関連項目==

MonoBookへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細はMonoBook:著作権を参照)。 著作権保護されている作品は、許諾なしに投稿しないでください!

このページを編集するには、下記の確認用の質問に回答してください (詳細):

取り消し 編集の仕方 (新しいウィンドウで開きます)

このページで使用されているテンプレート:

このページは 1 個の隠しカテゴリに属しています: