狠狠撸

狠狠撸Share a Scribd company logo
2016年2月25日?
第1回クローラー開発勉強会
ファッション系ECサイト
クローラー開発の苦労話
自己紹介
? 過去~現在のキャリア
? 派遣で6年程エンジニア&PM
? 正社員で8年ほどWeb系な人を対象にした
キャリアコンサルタントを経験
? 2014年7月~フリーランスでなぜかWeb系
のエンジニアをやってます。
(Rails4+AngularJS)
? クローラー開発について
? 趣味ベース
? クラフトビールの情報収集のためのクロー
ラーをNode.js+いくつかのnpmモジュー
ルでの開発
? 仕事で
? ファッションECサイトの収集のためのクロー
ラー開発をRuby/Rilsベースでの開発
Agenda
1. ファッションECサイトの特徴
2. ファッションECサイトをどう
攻めるか?
3. これまでの経験を踏まえてク
ローラーで出来たこと?実現
出来てないこと
1. ファッションECサイトの特徴
Photo By Bruno Cordioli
https://www.?ickr.com/photos/br1dotcom/4693813432/
?リッチなUI
?推測しやすいURL
?画像が多い
リッチなUI
例:WILD THINGS
推測しやすいURL
サイト名 カテゴリ:ジーンズ
gu /jp/store/feature/gu/men/jeans/
ZOZOTOWN /category/pants/denim-pants/
女性の場合の
URLは?
ボトムス?
パンツカテゴリの
一覧は?
サイト名 商品詳細ページ
NewBalance /products/newbalancejmjl6240sib.html
GO OUT /item/15RZ0068.html
商品IDっぽい
商品IDっぽい
画像が多い
2. ファッションECサイトを?
どう攻めるか?
? ボルダリングのようなもの
? 腕力に頼り過ぎない
? クローリングも腕力=技術に
頼り過ぎないようにする
? 頭を使うと意外と簡単なルー
トが見つかる(かも??)
リッチなUIのサイトの攻め方
? リッチなUIを実現するためにJavaScriptを多用
? 攻め方
? PCサイトが無理ならスマフォサイトを探す
? JavaScriptを多用してるならWebAPIで情報取得してるケースのは
ずなのでAPIのエンドポイントを探す
? あるサイトでは?
/xxx/ApiGetProductInfo.do?&product=[:product_id] という
感じでJSON取得できるのを発見
? これ↑気になる人は後でお声がけください。個別に教えます
サイトの攻め方
? URLが推測しやすい→サイト全体の構造が把握し
やすい
? 攻め方
? ZOZOTOWNの場合にはカテゴリ一覧の名前を
どこかで取得できれば良さそう
? /category/[メインカテゴリ]/[サブカテゴリ]
Photo by Sebastien Wiertz via Flickr
https://www.?ickr.com/photos/wiertz/4604140980/
これまでの経験を踏まえ
てクローラーで出来たこ
と?実現出来てないこと
出来たこと:在庫情報のスク
レイピング処理
tableタグ thタグ
tdタグ
在庫情報
id/classセレクタ無い。。。。?
サイズ?色?在庫のスクレイピングが
とても面倒
1. 先頭のtrのchildrenのテキストを取得し文字列が空白でな
い箇所をサイズとして配列に格納
2. trを順番にループtdタグが含まれてる場合に詳細の処理を
行う
3. ループカウンター付きでtdを1つづつ処理
4. 上記3.のループカウンターの値を参照して現在処理中のセ
ルを特定した上でサイズ、色、在庫の有無を格納
①
②
③
④
出来たこと:画像取得含めたクローラーの
アーキテクチャが考えられるようになった
SiteA?
Crawler
SiteB?
Crawler
Redis
MySQL
Scraping?
Worker
相手サーバー
負荷
取得アイテム数
情報鮮
度
出来てないこと:?
クローリングする上での最適なバランス
新 低
高
少
古
取得アイテム数
情報
鮮度
新 低
高
少
古
相手サーバー
負荷
相手のサーバー負荷を考慮しながら商品情報をたくさん
取得→ クローラーの実行頻度少ない状態なので取得さ
れた情報が古くなりがち
商品情報をたくさん取得し、かつ、短い周期でクローラー
を実行→ 相手のサーバーへのアクセス増えるため負荷高
くなる
多 多感覚的なものですがこの三角
形の面積は一定になる気がする?
3要素のうちの1つを犠牲にする
方針が必要なのかも
出来てないこと:?
画像管理の最適な方法
Scraping?
Worker
?
?
VPSベース
懸念:画像転送量に
応じたお金
懸念:?
1. 運用コストが高くつきそう
2. 将来的にS3とかに移行した
くなった場合のデータ移行
ご清聴ありがとうござ
いました

More Related Content

2016 02-25-crawler-study-01