Javascriptにおけるスクレイピング技術
Kotaro Sakai
2014.8.6
自己紹介
【(最近)興味のある分野】
サバイバル★ 英語 化学
【言語経験】
Java C# VB バッチ シェル
いずれも簡単なプログラムを作った程度
HTML CSS Javascript★
高一の時にメモ帳でサイト作りはじめてからの付き合い
【作ったきっかけ】
前回の勉強会で知ったスクレイピング技術を理解するため。
【なぜ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が格納される
});
});
【プログラムの概要】
検索用のテキストボックスに何か言葉を入力して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