Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Tasuku Nakano
24,515 views
Anemoneによるクローラー入門
Anemone is ruby gem for crawler. How to use Anemone.
Engineering
◦
Read more
20
Save
Share
Embed
Embed presentation
Download
Downloaded 30 times
1
/ 66
2
/ 66
3
/ 66
4
/ 66
5
/ 66
6
/ 66
7
/ 66
8
/ 66
9
/ 66
10
/ 66
11
/ 66
12
/ 66
13
/ 66
14
/ 66
15
/ 66
16
/ 66
17
/ 66
18
/ 66
19
/ 66
20
/ 66
21
/ 66
22
/ 66
23
/ 66
24
/ 66
25
/ 66
26
/ 66
27
/ 66
28
/ 66
29
/ 66
30
/ 66
31
/ 66
32
/ 66
33
/ 66
34
/ 66
35
/ 66
36
/ 66
37
/ 66
38
/ 66
39
/ 66
40
/ 66
41
/ 66
42
/ 66
43
/ 66
44
/ 66
45
/ 66
46
/ 66
47
/ 66
48
/ 66
49
/ 66
50
/ 66
51
/ 66
52
/ 66
53
/ 66
54
/ 66
55
/ 66
56
/ 66
57
/ 66
58
/ 66
59
/ 66
60
/ 66
61
/ 66
62
/ 66
63
/ 66
64
/ 66
65
/ 66
66
/ 66
More Related Content
PPTX
Rubyによるクローラー開発
by
しくみ製作所
PDF
Crawler Commons
by
chibochibo
PDF
Rubyで作るクローラー Ruby crawler
by
Takuro Sasaki
PDF
Rubyで始めるWebスクレイピング
by
Takuro Sasaki
PDF
45分で理解する webクローリング入門 斉藤之雄
by
Yukio Saito
PPTX
MongoDBの監視
by
Tetsutaro Watanabe
PDF
Capybaraで雑にWebスクレイピング
by
Koji Nakamura
PPTX
Reactjs
by
しくみ製作所
Rubyによるクローラー開発
by
しくみ製作所
Crawler Commons
by
chibochibo
Rubyで作るクローラー Ruby crawler
by
Takuro Sasaki
Rubyで始めるWebスクレイピング
by
Takuro Sasaki
45分で理解する webクローリング入門 斉藤之雄
by
Yukio Saito
MongoDBの監視
by
Tetsutaro Watanabe
Capybaraで雑にWebスクレイピング
by
Koji Nakamura
Reactjs
by
しくみ製作所
What's hot
PDF
TypeScriptへの入口
by
Sunao Tomita
PDF
Elasticsearchで作る形態素解析サーバ
by
Shinsuke Sugaya
PDF
今日はMongoDBの話はしない
by
Akihiro Kuwano
PDF
Node.js を選ぶとき 選ばないとき
by
Ryunosuke SATO
PPTX
がっつりMongoDB事例紹介
by
Tetsutaro Watanabe
PDF
MySQLユーザ視点での小さく始めるElasticsearch
by
Kentaro Yoshida
PDF
JavaScriptで出来る、あんなことこんなこと
by
Mayu Kimura
PPTX
いまいまMySQL@OSC2016島根
by
sakaik
PPT
[大図解]ピグライフはこう動いている
by
Akihiro Kuwano
PDF
Node js 入門
by
Satoshi Takami
PDF
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
by
Ryuji Tamagawa
PDF
Python と Xpath で ウェブからデータをあつめる
by
Shuhei Iitsuka
PDF
初めてのMongo db
by
Ryuji Tamagawa
PPT
Node.js で Web アプリ開発
by
Tatsumi Naganuma
PPTX
MongoDB World 2014に行ってきた!
by
Tetsutaro Watanabe
PDF
20150523
by
Toshihiro Suzuki
PDF
Node.jsでサーバプログラマ デビューしよう
by
Yuusuke Takeuchi
PDF
Hello, Node.js
by
Shin Sekaryo
PPTX
いまいまMySQL@OSC2016長岡
by
sakaik
PDF
Node.jsで始める Modern JavaScript Framework
by
kamiyam .
TypeScriptへの入口
by
Sunao Tomita
Elasticsearchで作る形態素解析サーバ
by
Shinsuke Sugaya
今日はMongoDBの話はしない
by
Akihiro Kuwano
Node.js を選ぶとき 選ばないとき
by
Ryunosuke SATO
がっつりMongoDB事例紹介
by
Tetsutaro Watanabe
MySQLユーザ視点での小さく始めるElasticsearch
by
Kentaro Yoshida
JavaScriptで出来る、あんなことこんなこと
by
Mayu Kimura
いまいまMySQL@OSC2016島根
by
sakaik
[大図解]ピグライフはこう動いている
by
Akihiro Kuwano
Node js 入門
by
Satoshi Takami
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
by
Ryuji Tamagawa
Python と Xpath で ウェブからデータをあつめる
by
Shuhei Iitsuka
初めてのMongo db
by
Ryuji Tamagawa
Node.js で Web アプリ開発
by
Tatsumi Naganuma
MongoDB World 2014に行ってきた!
by
Tetsutaro Watanabe
20150523
by
Toshihiro Suzuki
Node.jsでサーバプログラマ デビューしよう
by
Yuusuke Takeuchi
Hello, Node.js
by
Shin Sekaryo
いまいまMySQL@OSC2016長岡
by
sakaik
Node.jsで始める Modern JavaScript Framework
by
kamiyam .
Similar to Anemoneによるクローラー入門
PPTX
Webクローリング&スクレイピングの最前線 公開用
by
Lumin Hacker
PPTX
クローラを作る技術と設計 (毎週のハンズオン勉強会資料)
by
ひとし あまの
PDF
ScrapyとPhantomJSを用いたスクレイピングDSL
by
Masayuki Isobe
PDF
PythonによるWebスクレイピング入門
by
Hironori Sekine
PDF
⑳CSSでアニメーション!その1
by
Nishida Kansuke
PPTX
これからの「スクレイピング」の話をしよう
by
iPride Co., Ltd.
PDF
エコなWebサーバー
by
emasaka
PDF
WordBench Kobe jQueryどうでしょう
by
Hishikawa Takuro
PPTX
HTML5&API総まくり
by
Shumpei Shiraishi
ODP
20090704rubyist九州
by
koki_h
PPTX
HTML5最新動向
by
Shumpei Shiraishi
PDF
Plone features and trends
by
Takanori Suzuki
PPTX
Rawlerフレームワーク(全体)
by
Takaichi Ito
PDF
20140902 HTML5プロフェッショナル認定試験対策講座
by
leverages_event
PPTX
Rawler基本
by
Takaichi Ito
PPTX
Rawler基本
by
Takaichi Ito
PPTX
第3回Webスクレイピング勉強会@東京 happyou.info
by
Shogo Okamoto
ODP
webを飾る技術
by
ina job
PPTX
バレンタイン直前開催Web勉強会
by
Takahide Hosokawa
PDF
Nokogiri on Rails
by
Takuya Mukohira
Webクローリング&スクレイピングの最前線 公開用
by
Lumin Hacker
クローラを作る技術と設計 (毎週のハンズオン勉強会資料)
by
ひとし あまの
ScrapyとPhantomJSを用いたスクレイピングDSL
by
Masayuki Isobe
PythonによるWebスクレイピング入門
by
Hironori Sekine
⑳CSSでアニメーション!その1
by
Nishida Kansuke
これからの「スクレイピング」の話をしよう
by
iPride Co., Ltd.
エコなWebサーバー
by
emasaka
WordBench Kobe jQueryどうでしょう
by
Hishikawa Takuro
HTML5&API総まくり
by
Shumpei Shiraishi
20090704rubyist九州
by
koki_h
HTML5最新動向
by
Shumpei Shiraishi
Plone features and trends
by
Takanori Suzuki
Rawlerフレームワーク(全体)
by
Takaichi Ito
20140902 HTML5プロフェッショナル認定試験対策講座
by
leverages_event
Rawler基本
by
Takaichi Ito
Rawler基本
by
Takaichi Ito
第3回Webスクレイピング勉強会@東京 happyou.info
by
Shogo Okamoto
webを飾る技術
by
ina job
バレンタイン直前開催Web勉強会
by
Takahide Hosokawa
Nokogiri on Rails
by
Takuya Mukohira
Recently uploaded
PPTX
【ASW22-01】STAMP:STPAロスシナリオの発想・整理支援ツールの開発 ~astah* System Safetyによる構造化・階層化機能の実装...
by
csgy24013
PDF
サーバーサイド Kotlin を社内で普及させてみた - Server-Side Kotlin Night 2025
by
Hirotaka Kawata
PDF
Kubernetes Release Team Release Signal Role について ~Kubernetes Meetup Tokyo #72~
by
Keisuke Ishigami
PDF
0.0001秒の攻防!?快適な運転を支えるリアルタイム制御と組み込みエンジニアの実践知【DENSO Tech Night 第四夜】
by
dots.
PDF
Nanami Doikawa_寄り道の誘発を目的とした旅行写真からのスポット印象語彙の推定に関する基礎検討_EC2025
by
Matsushita Laboratory
PDF
Rin Ukai_即興旅行の誘発を目的とした口コミ情報に基づく雰囲気キーワード_EC2025.pdf
by
Matsushita Laboratory
PPTX
「グローバルワン全員経営」の実践を通じて進化し続けるファーストリテイリングのアーキテクチャ
by
Fast Retailing Co., Ltd.
【ASW22-01】STAMP:STPAロスシナリオの発想・整理支援ツールの開発 ~astah* System Safetyによる構造化・階層化機能の実装...
by
csgy24013
サーバーサイド Kotlin を社内で普及させてみた - Server-Side Kotlin Night 2025
by
Hirotaka Kawata
Kubernetes Release Team Release Signal Role について ~Kubernetes Meetup Tokyo #72~
by
Keisuke Ishigami
0.0001秒の攻防!?快適な運転を支えるリアルタイム制御と組み込みエンジニアの実践知【DENSO Tech Night 第四夜】
by
dots.
Nanami Doikawa_寄り道の誘発を目的とした旅行写真からのスポット印象語彙の推定に関する基礎検討_EC2025
by
Matsushita Laboratory
Rin Ukai_即興旅行の誘発を目的とした口コミ情報に基づく雰囲気キーワード_EC2025.pdf
by
Matsushita Laboratory
「グローバルワン全員経営」の実践を通じて進化し続けるファーストリテイリングのアーキテクチャ
by
Fast Retailing Co., Ltd.
Anemoneによるクローラー入門
1.
Anemoneによる クローラー入門 中野 佑
1
2.
About me 中野
佑(ナカノ タスク) こう見えて22歳(新卒1年目) 株式会社フィードフォース エンジニア ※決して怪しい者では ございません 2
3.
参考書 • 「Rubyによるクローラー開発
技法」 • 参考にさせていただきました • 入門から応用までわかりや すく解説が載っていました 3
4.
まずは… 4
5.
クローラーについて 5
6.
クローラー VS スクレイピング
6
7.
スクレイピングとは • Webページを解析してデータを抽出すること
• HTMLを解析(parse)して、データを抽出する • 対象はWebページ1ページ全体 7
8.
クローラーとは • 自動的にWebページのリンクを巡回して情報を
収集するプログラム • 情報を収集する際にはスクレイピングも 行われる • Botなどとも呼ばれる 例:Googleの検索エンジンなど 8
9.
クローラーの機能 1. Webページ全体を見ていく
2. スクレイピングをする 3. 次のリンクを探して、 そのリンク先のWebページへ遷移する 4. 次のリンクがなくなるまで1~3を繰り返す 9
10.
Rubyのライブラリ • Webサイトの読み込み
• open-uri • スクレイピング • nokogiri • Mechanize • クローラー • capybara 10
11.
今回ご紹介するgemは Anemone 11
12.
アネモネ • キンポウゲ科イチリンソウ属
の多年草 • 語源はギリシア語で「風」を 意味するΆνεμος (anemos)から • 花言葉は「はかない夢」 12
13.
アネモネ • キンポウゲ科イチリンソウ属
の多年草 • 語源はギリシア語で「風」を 意味するΆνεμος (anemos)から • 花言葉は「はかない夢」 13
14.
Anemone • Ruby製のクローラーgem
• 階層をたどる、sleep機能 など基本的な機能を網羅 ※画像は特に意味はありません 14
15.
Anemone • 基本的な使い方
1. #crawlに、クロールしたい始点URLをセット 2. 更にオプションも渡す 3. ブロック引数を指定して、ページごとに処理を したり、巡回先を絞り込んだりする 15
16.
.crawlのオプション • 第一引数にURLを指定(複数指定は配列で)
• :depth_limit • 階層の深さを指定 • :skip_query_string • URLパラメータを無視するかを指定 16
17.
他にも • :proxy_host,
:proxy_port • プロキシサーバの設定 • :user_agent • ユーザエージェントを指定 • :delay • アクセス間隔を指定(秒) 17
18.
ページに対する処理 • .on_every_page
• すべてのページに対して処理を行う • .on_pages_like • ページを指定して処理を行う • 正規表現で指定する 18
19.
実際にクローリング してみる 19
20.
クロール対象 20
21.
Webページ全てのURLを取得 21
22.
正規表現で絞り込む 22
23.
URLだけじゃなくて タイトルもほちぃ 23
24.
スクレイピング~ 24
25.
スクレイピングする上 で大事なのが… 25
26.
HTMLの構造を 理解すること! 26
27.
HTMLの構造を理解する • スクレイピングでクラス名やタグ、id名など
を指定してデータを取得することが可能 • 正規表現で取ってくることもできる 27
28.
正規表現なんて、 やってられない! 28
29.
CSSからもっと簡単 に! 29
30.
必要な情報を探したい • XPathを使う方法
• CSSセレクタを使う方法 • Nokogiri::XML::Nodeを理解する必要がある 30
31.
XPath • HTMLをXML文書として、階層構造で特定部分
を示すための構文 • 一番近いHTMLのルートの階層から始まる • 例: 「//*[@id="content"]/article/div[1]/h1」 31
32.
XPathの取得方法 32
33.
XPathを取得した!▼ 33
34.
body内のid名 34
35.
1番目のarticleタグ 35
36.
article内のdivタグ 36
37.
目的のh1タグ 37
38.
Nodeについての話 の前に… 38
39.
Nokogiri::HTML::parse について 39
40.
parseの挙動 • URLを受け取って解析をしたあと、
Nokogiri::HTML::Documentクラスの オブジェクトを返します • 以下の継承関係にあります • Nokogiri::HTML::Document • Nokogiri::XML::Document • Nokogiri::XML::Node 40
41.
余談 • Nokogiri::parseメソッドでは受け取った値が
HTMLか、XMLかを自動判定して、 よしなに適したメソッドに渡す • しかし、誤判定もあるため、推奨されていない 41
42.
Nokogiri::XML::Node • NokogiriのXML::Documentから得られる
検索系のメソッド • Nokogiri::XML::Nodeの挙動とメソッドを 覚えることが大事 • 要素の操作や検索時の機能を有している • XPathやCSSの検索機能もここに実装されて いる 42
43.
Node vs NodeSet
• 共通のメソッドが多く、挙動が似ている • 違いを理解していないと、メソッドがないな どのエラーが出ることも • 検索系のメソッドはNodeと同じ名前で内部的 にNodeを呼び出していることも多い • NodeSetはNodeを格納したリスト型配列 43
44.
細かいメソッドなどは 本を読んでね☆ 44
45.
やっと本題に戻って 解析してみる 45
46.
見出し一覧を 取得したい 46
47.
47 3つの記事を 対象
48.
見出しはh2タグ 48
49.
XPathを取得した!▼ 49 ここがほちぃ
50.
対象を絞りこみ 50
51.
スクレイピング 51
52.
結果 52
53.
実際にはClassを確認 しながら実装すると良いです 53
54.
最後にひとつだけ 54
55.
クローリングする上で のルール 55
56.
注意 • クローラーで収集したデータをそのまま公開
すると著作権違反になります • 頻繁にアクセスをしてしまうと、 攻撃とみなされることもあります 56
57.
ルールブック 57
58.
robots.txt • 記述方式
• User-agent: 拒否したいUA • Allow: クロールの可能なページのパス • Disallow: クロールされたくないページのパス • Crawl-delay: クロール間隔(単位はあやふや) • rubyには、robotexがある • https://github.com/chriskite/robotex 58
59.
robots.txt一覧 • Amazon
• http://www.amazon.com/robots.txt • はてなブログ • http://hatenablog.com/robots.txt • Wikipedia • http://ja.wikipedia.org/robots.txt 59
60.
みんなで守ろう! 60
61.
おまけ 61
62.
クローラーの効率化 62
63.
クローラーの高速化 • 並列化する
• cosmicrawlerというgemがある • まだ試せてないので割愛 63
64.
クローラーの使い道 64
65.
使い道 • 天気予報サイトから天気を取得
• ラズパイで毎朝天気を教えるものを作るとか • 週刊誌の発売日一覧を取得する • 株価の変動状況を取得する • 新刊情報を取得する 65
66.
以上です。 66
Download