Submit Search
JAWSUG architecture-crowler
•
5 likes
•
5,831 views
Takuro Sasaki
Lambdaで作るクローラー&Webスクレイピング アーキテクチャ面から
Read less
Read more
1 of 16
Download now
Download to read offline
More Related Content
JAWSUG architecture-crowler
1.
クローラー&Webスクレイピング with AWS Lambda JAWS-UG
アーキテクチャ専門支部 クラウドネイティブ分科会 CDP議論会 #7 佐々木拓郎 2016/03/25
2.
自己紹介 佐々木 拓郎 • AWSとモバイル • http://blog.takuros.net/ •
http://www.slideshare.net/ takurosasaki/ • twitter: @dkfj
3.
AWSの一番分厚い本 (大容量480P) http://amzn.to/1BLiYcO
4.
Rubyのクローラー本 何故か人気の本 by 編集者 http://amzn.to/1lsJ5id
5.
クローラー&スクレピング •Webスクレピング ✓特定のページから情報を抜き出す行為のこと ✓HTMLのDOM解析派と正規表現によるパターンマッチング派がいる •クローラー ✓Webを巡回して文章や画像を定期的に取得する行為 ✓巡回・抽出(スクレイピング)・保存の機能がある
6.
3種類のページタイプ •ステートレスなページ(状態を持たない) ✓いわゆる静的ページに多い ✓一番簡単にデータをスクレイプできる •ステートフルなページ(状態を持つページ) ✓ログイン状態やPOSTなど前画面の情報を前提とするタイプ ✓サーバサイドで動的に生成されるページの多くがこのタイプ •JavaScriptで動的に構築されるページ ✓JavaScriptを元にクライアント側でページを構築される ✓ステートレス/ステートフル、どちらのタイプもある
7.
ステートレスなページ スクレイピング プログラム Webサイト スクレイピングのライブラリ選定だけがポイント html url
8.
ステートフルなページ スクレイピング プログラム Webサイト • 対話型のライブラリが必要な場合がある • ブラウザは不要 •
ログイン状態の有無は、Cookieのみで対処可能なケースも パラメータ 遷移 html
9.
JavaScriptによる動的ページ スクレイピング プログラム Webサイト • ブラウザが必要。ほぼヘッドレスブラウザを使う • PhantomJS&CasperJS (JavaScript
APIで操作できるWebKitブラウザ) • JavaScriptを解析して、データ部分を探すという手もある ヘッドレス ブラウザ リクエスト html リクエスト レスポンス
10.
クローラー/スクレイプのライブラリ JavaScript Python Ruby 構文解析&抽出
cheerio-httpcli BeautifulSoup nokogiri 巡回&保存 ??? Scrapy anemone Webページ操作 mechanize-js? mechanize? Mechanize ヘッドレス ブラウザ PhantoJS +CasperJA Splinter? Capybara (Selenium +PhantomJS)
11.
クローラー実行基盤としての Lambada •理想的な環境 ✓グローバルIPありでプログラムを実行できる ✓スクレイピングだけであれば、文句なし ✓発火イベントが充実しているので、収集と解析を分離しやすい •注意点 ✓処理時間限界(5分)があるので、クローラーの構造を考える必要あり ✓複数グローバルIPの取得を任意では出来ない
12.
スクレイプの アーキテクチャ例 ②HTTP リクエスト ③HTTP レスポンス ④html 保存 ⑤S3 Event Call ⑥S3 get Object ⑦スクレイプ ⑧結果①キック
13.
サービス監視 生死監視用のページを作成すべき • apache/nginxでレスポンスするページ • apache/nginx+APPサーバでレスポンスするページ •
apache/nginx+APPサーバ+DBでレスポンスするページ Web 層 HTTP O.K. アプリ 層 DB 層 アプリ O.K. DB O.K.
14.
手抜きスクレイピング json Webサイト サービス(import.io)併用 http リクエスト スクレイプ
15.
参考情報 •Lambdaで作るクローラー/スクレイピング ✓http://blog.takuros.net/entry/2014/12/14/053606 •AWS Lambda+PhantomJS/CasperJSでスクレイピング ✓http://blog.takuros.net/entry/2015/12/01/074444
16.
AWSの鈍器のような本 (640ページ!?) 4/11発売開始!! 絶賛、予約受付中!! http://amzn.to/1R4yyLy
Download