Javascriptにおけるスクレイピング技術






Kotaro Sakai
2014.8.6

自己紹介

【(最近)興味のある分野】
サバイバル★ 英語 化学

【言語経験】
Java C# VB バッチ シェル
いずれも簡単なプログラムを作った程度

HTML CSS Javascript★
高一の時にメモ帳でサイト作りはじめてからの付き合い

Wikipedia-Searchを作った

【作ったきっかけ】
前回の勉強会で知ったスクレイピング技術を理解するため。

【なぜJavascriptか?】
環境を揃えるのが面倒だったから。jQueryを使ってみたかったから。

【Javascriptの欠点】
ドメインの異なるサーバー間でデータのやり取りができない。
(クロスドメイン問題)
→致命的!

jquery.xdomainajax.js 

【概要】
その名の通りJavascriptにおけるクロスドメイン問題を解決してくれる
ライブラリの一つ。

【使い方】
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jquery.xdomainajax.js"></script>

$.ajax({
	url : "http://www.google.co.jp/",
	type : "GET",
	success : function(data){
			// data.responseTextに取得したHTMLが格納される
	});
});

Wikipedia-Searchについて

【プログラムの概要】
検索用のテキストボックスに何か言葉を入力してSearchボタンを押すと、Wikipediaの該当のページから項目名・本文・関連項目・関連用語(本文内のリンク項目)のみを取得し表示する。

【プログラムの特徴】
クライアント環境のみで動作する
カスタマイズが可能
関連用語(本文内のリンク項目)を抽出
関連項目/用語へのリンク★

スクレイピング技術  

// 関連項目
items = $(data.responseText).find("h2:contains('関連項目') ~ ul:first > li > a").each(function(){
		items.push($(this));
});

【意味】
「"関連項目"という文字列を含むh2タグに隣接する最初のulタグの
子要素であるliタグの子要素であるaタグ」

最後に  

スクレイピング技術を理解するにはWikipediaは最適。
ページ数が膨大な割にそれぞれのページで意外と
フォーマットが 統一されてない。
つまり、それだけいろいろなパターンがあるということ。

みなさん、Wikipediaに寄付をしましょう。

ご清聴ありがとうございました。

Javascriptにおけるスクレイピング技術

By Jane Doe

Javascriptにおけるスクレイピング技術

  • 1,902