Submit Search
Upload
スクレイピングとPython
•
38 likes
•
9,358 views
Hironori Sekine
Follow
PyCon mini Hiroshima 2015/11/22 スクレイピングとPython
Read less
Read more
Technology
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 61
Download now
Download to read offline
Recommended
なぜコンピュータを学ばなければならないのか 21世紀の君主論
なぜコンピュータを学ばなければならないのか 21世紀の君主論
Tokoroten Nakayama
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
Tokoroten Nakayama
Web制作のプロジェクトを前進させるために Backlogで実践した3つのポイント
Web制作のプロジェクトを前進させるために Backlogで実践した3つのポイント
Naoya Shiraishi
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
Tokoroten Nakayama
IT系エンジニアのためのプレゼンテーション入門
IT系エンジニアのためのプレゼンテーション入門
Masahito Zembutsu
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
Tokoroten Nakayama
「スキルなし・実績なし」 32歳窓際エンジニアがシリコンバレーで働くようになるまで
「スキルなし・実績なし」 32歳窓際エンジニアがシリコンバレーで働くようになるまで
Shuichi Tsutsumi
心理的安全性を 0から80ぐらいに上げた話
心理的安全性を 0から80ぐらいに上げた話
Yusuke Hisatsu
Recommended
なぜコンピュータを学ばなければならないのか 21世紀の君主論
なぜコンピュータを学ばなければならないのか 21世紀の君主論
Tokoroten Nakayama
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
Tokoroten Nakayama
Web制作のプロジェクトを前進させるために Backlogで実践した3つのポイント
Web制作のプロジェクトを前進させるために Backlogで実践した3つのポイント
Naoya Shiraishi
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
Tokoroten Nakayama
IT系エンジニアのためのプレゼンテーション入門
IT系エンジニアのためのプレゼンテーション入門
Masahito Zembutsu
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
Tokoroten Nakayama
「スキルなし・実績なし」 32歳窓際エンジニアがシリコンバレーで働くようになるまで
「スキルなし・実績なし」 32歳窓際エンジニアがシリコンバレーで働くようになるまで
Shuichi Tsutsumi
心理的安全性を 0から80ぐらいに上げた話
心理的安全性を 0から80ぐらいに上げた話
Yusuke Hisatsu
オブジェクト指向できていますか?
オブジェクト指向できていますか?
Moriharu Ohzu
MQTTとAMQPと.NET
MQTTとAMQPと.NET
terurou
Webアプリを並行開発する際のマイグレーション戦略
Webアプリを並行開発する際のマイグレーション戦略
Takayuki Shimizukawa
Yahoo! ニュースにおけるドキュメント管理の事例紹介
Yahoo! ニュースにおけるドキュメント管理の事例紹介
Yahoo!デベロッパーネットワーク
GitLab から GitLab に移行したときの思い出
GitLab から GitLab に移行したときの思い出
富士通クラウドテクノロジーズ株式会社
「DX完全に理解した」「DXわけがわからないよ」なユーザ企業の方へ
「DX完全に理解した」「DXわけがわからないよ」なユーザ企業の方へ
YoheiGibo
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
mosa siru
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
Shota Shinogi
Pythonによる黒魔術入門
Pythonによる黒魔術入門
大樹 小倉
UniRx完全に理解した
UniRx完全に理解した
torisoup
Node RED で実現する製造業の DX
Node RED で実現する製造業の DX
雅治 新澤
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
オーバーエンジニアリングって何? #devsumi #devsumiA
オーバーエンジニアリングって何? #devsumi #devsumiA
Ore Product
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
Yoshiki Hayama
こわくない Git
こわくない Git
Kota Saito
ジョブ管理でcronは限界があったので”Rundeck”を使ってハッピーになりました
ジョブ管理でcronは限界があったので”Rundeck”を使ってハッピーになりました
Yukiya Hayashi
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
未経験者から世界と渡り合うネットワークエンジニアになるためのキャリア設計術
未経験者から世界と渡り合うネットワークエンジニアになるためのキャリア設計術
Taiji Tsuchiya
ビジネスパーソンのためのDX入門講座エッセンス版
ビジネスパーソンのためのDX入門講座エッセンス版
Tokoroten Nakayama
心理的安全性の構造 デブサミ2019夏 structure of psychological safety
心理的安全性の構造 デブサミ2019夏 structure of psychological safety
Tokoroten Nakayama
Pythonによるwebアプリケーション入門 - Django編-
Pythonによるwebアプリケーション入門 - Django編-
Hironori Sekine
211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する
Takuya Nishimoto
More Related Content
What's hot
オブジェクト指向できていますか?
オブジェクト指向できていますか?
Moriharu Ohzu
MQTTとAMQPと.NET
MQTTとAMQPと.NET
terurou
Webアプリを並行開発する際のマイグレーション戦略
Webアプリを並行開発する際のマイグレーション戦略
Takayuki Shimizukawa
Yahoo! ニュースにおけるドキュメント管理の事例紹介
Yahoo! ニュースにおけるドキュメント管理の事例紹介
Yahoo!デベロッパーネットワーク
GitLab から GitLab に移行したときの思い出
GitLab から GitLab に移行したときの思い出
富士通クラウドテクノロジーズ株式会社
「DX完全に理解した」「DXわけがわからないよ」なユーザ企業の方へ
「DX完全に理解した」「DXわけがわからないよ」なユーザ企業の方へ
YoheiGibo
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
mosa siru
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
Shota Shinogi
Pythonによる黒魔術入門
Pythonによる黒魔術入門
大樹 小倉
UniRx完全に理解した
UniRx完全に理解した
torisoup
Node RED で実現する製造業の DX
Node RED で実現する製造業の DX
雅治 新澤
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
オーバーエンジニアリングって何? #devsumi #devsumiA
オーバーエンジニアリングって何? #devsumi #devsumiA
Ore Product
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
Yoshiki Hayama
こわくない Git
こわくない Git
Kota Saito
ジョブ管理でcronは限界があったので”Rundeck”を使ってハッピーになりました
ジョブ管理でcronは限界があったので”Rundeck”を使ってハッピーになりました
Yukiya Hayashi
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
未経験者から世界と渡り合うネットワークエンジニアになるためのキャリア設計術
未経験者から世界と渡り合うネットワークエンジニアになるためのキャリア設計術
Taiji Tsuchiya
ビジネスパーソンのためのDX入門講座エッセンス版
ビジネスパーソンのためのDX入門講座エッセンス版
Tokoroten Nakayama
心理的安全性の構造 デブサミ2019夏 structure of psychological safety
心理的安全性の構造 デブサミ2019夏 structure of psychological safety
Tokoroten Nakayama
What's hot
(20)
オブジェクト指向できていますか?
オブジェクト指向できていますか?
MQTTとAMQPと.NET
MQTTとAMQPと.NET
Webアプリを並行開発する際のマイグレーション戦略
Webアプリを並行開発する際のマイグレーション戦略
Yahoo! ニュースにおけるドキュメント管理の事例紹介
Yahoo! ニュースにおけるドキュメント管理の事例紹介
GitLab から GitLab に移行したときの思い出
GitLab から GitLab に移行したときの思い出
「DX完全に理解した」「DXわけがわからないよ」なユーザ企業の方へ
「DX完全に理解した」「DXわけがわからないよ」なユーザ企業の方へ
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
Pythonによる黒魔術入門
Pythonによる黒魔術入門
UniRx完全に理解した
UniRx完全に理解した
Node RED で実現する製造業の DX
Node RED で実現する製造業の DX
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
オーバーエンジニアリングって何? #devsumi #devsumiA
オーバーエンジニアリングって何? #devsumi #devsumiA
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
こわくない Git
こわくない Git
ジョブ管理でcronは限界があったので”Rundeck”を使ってハッピーになりました
ジョブ管理でcronは限界があったので”Rundeck”を使ってハッピーになりました
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
未経験者から世界と渡り合うネットワークエンジニアになるためのキャリア設計術
未経験者から世界と渡り合うネットワークエンジニアになるためのキャリア設計術
ビジネスパーソンのためのDX入門講座エッセンス版
ビジネスパーソンのためのDX入門講座エッセンス版
心理的安全性の構造 デブサミ2019夏 structure of psychological safety
心理的安全性の構造 デブサミ2019夏 structure of psychological safety
Similar to スクレイピングとPython
Pythonによるwebアプリケーション入門 - Django編-
Pythonによるwebアプリケーション入門 - Django編-
Hironori Sekine
211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する
Takuya Nishimoto
Python & PyConJP 2014 Report
Python & PyConJP 2014 Report
gree_tech
Python for Beginners ( #PyLadiesKyoto Meetup )
Python for Beginners ( #PyLadiesKyoto Meetup )
Ai Makabi
地域 PyCon mini を広島で
地域 PyCon mini を広島で
Takuya Nishimoto
MicroPython + ESP32
MicroPython + ESP32
Takuya Nishimoto
Python札幌 2012/06/17
Python札幌 2012/06/17
Shinya Okano
Django から各種チャットツールに通知するライブラリを作った話
Django から各種チャットツールに通知するライブラリを作った話
Yusuke Miyazaki
Django で始める PyCharm 入門
Django で始める PyCharm 入門
kashew_nuts
初学者のためのプロンプトエンジニアリング実践.pptx
初学者のためのプロンプトエンジニアリング実践.pptx
Akifumi Niida
エキスパートPythonプログラミング改訂3版の読みどころ
エキスパートPythonプログラミング改訂3版の読みどころ
Takayuki Shimizukawa
Pythonを始めよう
Pythonを始めよう
shouta yoshikai
Two sides of "Python Engineer Training Book"
Two sides of "Python Engineer Training Book"
Takanori Suzuki
Inside PyCon JP 2016
Inside PyCon JP 2016
koedoyoshida
サードパーティパッケージの歩き方
サードパーティパッケージの歩き方
Takesxi Sximada
191208 python-kansai-nishimoto
191208 python-kansai-nishimoto
Takuya Nishimoto
The tale of I and python / Python とのはなし
The tale of I and python / Python とのはなし
Takanori Suzuki
PyScriptの紹介
PyScriptの紹介
2bo 2bo
続Pythonによるwebスクレイピング入門
続Pythonによるwebスクレイピング入門
Hironori Sekine
Why python
Why python
TeppeiAkada1
Similar to スクレイピングとPython
(20)
Pythonによるwebアプリケーション入門 - Django編-
Pythonによるwebアプリケーション入門 - Django編-
211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する
Python & PyConJP 2014 Report
Python & PyConJP 2014 Report
Python for Beginners ( #PyLadiesKyoto Meetup )
Python for Beginners ( #PyLadiesKyoto Meetup )
地域 PyCon mini を広島で
地域 PyCon mini を広島で
MicroPython + ESP32
MicroPython + ESP32
Python札幌 2012/06/17
Python札幌 2012/06/17
Django から各種チャットツールに通知するライブラリを作った話
Django から各種チャットツールに通知するライブラリを作った話
Django で始める PyCharm 入門
Django で始める PyCharm 入門
初学者のためのプロンプトエンジニアリング実践.pptx
初学者のためのプロンプトエンジニアリング実践.pptx
エキスパートPythonプログラミング改訂3版の読みどころ
エキスパートPythonプログラミング改訂3版の読みどころ
Pythonを始めよう
Pythonを始めよう
Two sides of "Python Engineer Training Book"
Two sides of "Python Engineer Training Book"
Inside PyCon JP 2016
Inside PyCon JP 2016
サードパーティパッケージの歩き方
サードパーティパッケージの歩き方
191208 python-kansai-nishimoto
191208 python-kansai-nishimoto
The tale of I and python / Python とのはなし
The tale of I and python / Python とのはなし
PyScriptの紹介
PyScriptの紹介
続Pythonによるwebスクレイピング入門
続Pythonによるwebスクレイピング入門
Why python
Why python
Recently uploaded
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
Recently uploaded
(9)
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
スクレイピングとPython
1.
スクレイピングと Python 2015/11/22 関根裕紀 PyCon mini
Hiroshima
2.
自己紹介 • 関根裕紀(せきね ひろのり) •
株式会社SQUEEZE • Twitter: @checkpoint
3.
業務でのPython • ホームシェア(民泊)などの物件の管理、ま たそれに伴う各種オペレーションを一元的に 管理するクラウドサービス を提供(Mister Suite) •
実際の業務ではDjango、Scrapyを使用 • エンジニア積極採用中!
4.
5.
Pythonとの関わり(1) • PyCon JP
2014 スタッフ • PyCon JP 2015 プログラムチーム副座長 • Pythonもくもく会(主催)
6.
Pythonとの関わり(2) • LLDiver • PyCon
JP 2014 • Phone Symposium Tokyo 2015 • PyCon mini Hiroshima (Today!!) • Pythonエンジニア養成読本(共著)
7.
アジェンダ • Webスクレイピングとは? • PythonでのWebスクレイピング •
Webスクレイピングのサンプル紹介
8.
Webスクレイピングとは? Webスクレイピングとは、WebサイトからWebページのHTMLデータを収 集して、特定のデータを抽出、整形し直すことである。 Webスクレイピングを行うことで、Webページを対象として、あたかも Web APIを利用しているかのようにデータを効率的に取得・収集すること が可能になる。用途の例としては、部分的にコンテンツを取り出して携帯 電話向けのコンテンツを生成したり、小見出しの一覧を生成したり、といっ た使い方あある。Webスクレイピングは様々な手段で実現可能であるが、 PHPやPerlといったスクリプト言語を使用して行われることが多い。 ( http://www.sophia-it.com/content/Webスクレイピング
) IT用語辞典より
9.
Webスクレイピング • WebサイトからHTMLのデータを収集 • 特定のデータを抽出、加工 •
抽出したデータを再利用 • クローリング + スクレイピング
10.
クローリング • 英語の意味は、[はう、ゆっくり進む] • Webページのリンクの内容をたどる •
Webページの内容をダウンロードして収集 • クローラー、スパイダーと呼ばれる
11.
スクレイピング • 英語の意味は、[ 削ること
] • ページの内容から必要な情報を抽出
12.
用途 • 検索エンジン • 価格比較 •
気象データの監視 • サイトの変更検出 • Webサイトの情報解析、研究(比較、分類、統計)
13.
Webサービスを使用 • kimono (
https://www.kimonolabs.com/ ) • import.io ( https://import.io/ )
14.
プログラミング • wget, cURL •
Ruby ( Nokogiri、Mechanize) • Perl(Web::Scraper)
15.
Pythonでのスクレイピング • 標準ライブラリ • BeautifulSoup •
pyquery • Scrapy • その他
16.
バッテリー付属言語 Python
17.
標準ライブラリ • Pythonの標準ライブラリはとても充実 • ネットワーク、正規表現、etc •
Pythonの処理系だけあれば良い • 簡単なスクレイピングであれば十分実用的
18.
サンプル
19.
サンプル(requests版)
20.
Beautiful Soup • 2004年位から存在するライブラリ •
HTMLやXMLからデータを抽出して取得 • 最新バーションはBeautiful Soup 4系 • Python 2.7、Python 3.2に対応
21.
サンプル
22.
pyquery • jQuery風にHTML/XML操作が可能 • パーサーにはlxmlを使用(高速) •
JQuery風のセレクタを利用できる
23.
サンプル
24.
Selenium • Webブラウザのオートメーションツール • 実際にブラウザを操作してコンテンツを取得 •
PhantomJS(ヘッドレスブラウザ)と連携可 • JavaScript(Ajax)を利用しているサイトの コンテンツも簡単に取得できる
25.
サンプル
26.
Scrapy Scarpyは速くて、ハイレベルなスクレイピング クローラーのフレームワーク。Webサイトのク ロールと、構造化されたデータを取り出すのに 使用する。幅広い目的に使用できる。データマ イニングから、モニタリング、自動テストなど
27.
Scrapy
28.
Scrapyの特徴 • クローリング、スクレイピングフレームワーク • Djangoに影響されている(Middlewareなど) •
スクレイピングに必要な機能がそろっている • ドキュメントが充実している • Python2.7のみ対応(3にも対応するらしい)
29.
Scrapyの主な機能 • ダウンロード、抽出、保存 • ダウンロードしたドキュメントのキャッシュ •
強力なコマンドラインシェル • Robots.txtのパース • 非同期、並行ダウンロード(Twistedを使用) • ドメイン、IPアドレス単位のクロール間隔調整 • エラー時のリトライ • ログ出力
30.
Scrapyのアーキテクチャ https://scrapy.readthedocs.org/en/latest/topics/architecture.html
31.
コンポーネント • Scrapy Engine •
Scheduler • Downloader • Spiders • Item Pipeline • Downloader middlewares • Spider middlewares
32.
Scrapy Engine • コンポーネント間のデータフローを制御する •
特定のアクションが発生したら、イベントを 起こす
33.
Spider • ユーザーが作成するカスタムクラス • 取得したいURL、抽出する項目を記述する •
ダウンロードしてコンテンツをスクレイピン グして、Itemを作成する
34.
Scheduler • EngineからRequestを受け取り、スケジュー リングする
35.
Downloader • 実際にWebページを取得する。 • Downloader
middlewaresで処理を差し込む 事ができる。(キャッシュなど) • Ajaxのコンテンツは、Seleniumでダウンロー ドさせたりなど、処理の変更も可能。
36.
Item Pipeline • スパイダーによって抽出されたアイテムを出力 •
データのクレンジング、検証 • 永続化(JSON、File、DB、Mail)など
37.
開発手順 • Scrapyプロジェクトの作成 • Spiderを作成(リンク抽出、ダウンロード) •
Itemパイプラインでデータを保存
38.
プロジェクトの作成 $ scrapy startproject
scrapy_sample
39.
サンプル
40.
Spider作成(公式サイトより)
41.
実行 $ scrapy crawl
dmoz_spider -o scraped_data.json
42.
サンプル紹介 • Airbnbの物件情報をスクレイピング • 京都、沖縄(任意の場所) •
6/27 - 6/28(この期間で宿泊可能な物件) • 20000円以内 • 価格の分布図を表示(Web画面)
43.
物件情報
44.
ライブラリ - Scraping •
requests (HttpClient) • Beautiful Soup (Scraping) • SqlAlchemy ( O/R Mapper)
45.
ライブラリ - Web •
Bottle ( Web Application Framework) • Highcharts ( Graph Library) • SqlAlchemy ( O/R Mapper)
46.
Bottle • 軽量なWebアプリケーションフレームワーク • ルーティング •
テンプレートエンジン • HTTPユーティリティ • ビルトインのサーバー
47.
HelloWorld
48.
SQLAlchemy • データベースやSQLに関連する機能を提供す るライブラリ • O/Rマッパーは提供される機能のうちの1つ
49.
モデルの定義
50.
レコード作成、検索
51.
デモ
52.
デモ
53.
ソースコード(モデルの定義)
54.
ソースコード(スクレイピング)
55.
ソースコード(クローリング)
56.
ソースコード(Web)
57.
ソースコード(Web)
58.
ソースコード(Web)
59.
まとめ • Pythonでスクレイピングを行う場合、色々な アプローチがある。 • 標準のライブラリから、フレームワークまで 選択肢は沢山ある。 •
実際の要件に合わせて使用すれば良い。
60.
参考資料 • http://scrapy.org (
Scrapy ) • http://www.slideshare.net/MasayukiIsobe/web-scraping-20140622isobe • https://github.com/gawel/pyquery/ ( pyquery ) • http://www.crummy.com/software/BeautifulSoup/ ( BeautfulSoup ) • http://orangain.hatenablog.com/entry/scrapy • http://akiniwa.hatenablog.jp/entry/2013/04/15/001411 • http://tokyoscrapper.connpass.com/ ( Webスクレイピング勉強会 ) • http://www.slideshare.net/nezuQ/web-36143026?ref=http://www.slideshare.net/ slideshow/embed_code/36143026 • http://qiita.com/nezuq/items/c5e827e1827e7cb29011( 注意事項 )
61.
ご静聴ありがとうございました
Download now