狠狠撸

狠狠撸Share a Scribd company logo
搁耻产测によるクローラー开発
2015/02/26(Thur) kada
contents
1. クローラーの概要
2. webwebでの活用例
3. 実装で困ったこと
4. ブラウザタイプのクローラー
1. クローラーの概要
クローラーとは?
- システムがwebページを自動巡回して情報を収集す
るプログラム
ex. googleの検索エンジン、マーケティング分析
関連ライブラリ
- anemone, nokogiri, kconv, capybara, poltergeist,
selenium-webdriver, etc...
クローラーの構造
<anemoneのメイン処理>
①巡回サイトのURLを指定
②除外対象ページのURLパターンを指定
③巡回対象ページのURLを指定
④取得したページに対して、正規表現で一致したペー
ジのみ処理
⑤取得したすべてに対しての処理
⑥ストレージに対する処理
example
今回は取得したいURLが
http://media-
radar.jp/detail****.html
の形をしているので、該当部分
を正規表現で抜粋できる。
(ただし巡回の深さは
depth_limit=>1としている)
xpathやCSSセレクタで構文解
析しても良い。
??? 取得したいURL => ④にあたる
??? skipしたいURL
2. webwebでの活用例
webページのmetaタグ解析
- description, commentの取得
- 巡回しなくても取得できる場合はnokogiriが基本
コードリーディング!
example
1. scrapeメソッド
- 指定したURLのHTMLをパース
- xpathでmetaタグの構文解析
2. get_descriptionメソッド
- meta name = “description”のcontent部分をゲッ
ト!
3. 実装で困ったこと
- 文字化け(kconvでほぼ解決!)
- xpath指定
- リダイレクト(open_uri_redirectionsで解決!)
- proxy設定(大学でできないorz)
4. ブラウザタイプのクローラー
- anemoneはフォーム入力による画面遷移?対話処理
やJavaScriptの実行はサポートされていない!
- テスト自動化の分野でのブラウザを操作するライブ
ラリを活用 => Capybara, Selenium
Capybara概念図
Capybara
DSL
Driver
Cucumber
MiniTest::Spec
Test::Unit
Rspec
Poltergeist
RackTest
Webkit
Selenium
テストフレームワーク
ブラウザシミュレータ
参考図書
- 「搁耻产测によるクローラー开発技法」

More Related Content

搁耻产测によるクローラー开発