2016/08/21 #crawler_ops
@mosa_siru
@mosa_siru ( )
•
• 2
@mosa_siru as engineer
• DeNA
• Gunosy
• CTO
1.
2.
3.
4.
5.
• 2016/06 KDDI 

•
•
•
• 匠
• 

•
•
• 匠
•
•
• RSS
• t2small 2 ( )
•
•
•
•
• XML 

• 1
•
• DB s3
• RSS2.0, Atom, RDF
GunosyFeed Ver. 2
•


• JobQueue (Python Celery)
•
•
• 

• Celery Flower
Celery Flower
Scheduler


• 30
• Fetcher enqueue
•
• HTTP
Scheduler
Fetcher


• XML
• XML hash hash
• XML s3 Up Parser
enqueue
• s3
Fetcher
Parser(Updater)


• XML parse Python feedparser
• RSS2.0, Atom, RDF parse
• XML
• ( )
•
• etc…
Parser
• parse DB s3 up
• DB insert/update/delete
• update 

update
• mysql insert on duplicate key update
update (1 1 update )
Updater
• url or guid
• hash
DB hash
• url feed, title,
(
guid …)
Content Generator


•
• HTML (js )
• URL URL (./hoge.html )
• css path
•
• (img ) s3 URL
• hash s3
Content Generator
Enclosure Fetcher


• s3 

DB URL
•
• hash
s3
Enclosure Fetcher
• HTTP Request Proxy
(Squid)
• Response Header
• IP (Elastic IP)
HTTP Proxy
Image Cropper


• Microsoft
FaceDetection API

•
crop
Image Cropper
///
Akamai Image Converter
• Akamai URL
• Smalllight
•
•
•
•
Crop
https://…/mychild.png
 https://…/mychild.png

?crop=200:200;220,210
• Crop
Quality
https://…/mychild.png

?crop=200:200;220,210
•
https://…/mychild.png

?crop=200:200;220,210

&output-quality=10



Title Break Calculator


Title Break Calculator
•
• API ( )




Indexer


Indexer
• index Indexer API
•
• Indexer API ElasticSearch
Classifier


Classifier
•
Classifier API
•
• Classifier API




• 

API
•
•


http://www.slideshare.net/
mosa_siru/ss-64839846


•
• Article DB write/read
• API
• Article API
• Article DB read Article API
• 

•
• API
•
•
Cache Invalidation
• Article API memcached 

invalidation(memd )
• URL, URL Akamai
query string 

https://…/mychild.png?crop=200:200;220,210&output-quality=10

&t=1468557607


•
•
• URL
•
•
•
XML
• XML
• XML 

• Crawler API
XML
DEMO
• XML XML 

• Slack
•
• XML
• 

•
•
•
•
• 匠
Gunosy
@mosa_siru

ニュースパスのクローラーアーキテクチャとマイクロサービス