Submit Search
スクレイピングとPython
38 likes
9,446 views
Hironori Sekine
PyCon mini Hiroshima 2015/11/22 スクレイピングとPython
Technology
Read more
1 of 61
Download now
Downloaded 88 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
More Related Content
PDF
「プロジェクト管理」を超えた Redmine 活用の道のりとこれから
Minoru Maeda
PDF
チケット駆動開発の解説~タスク管理からプロセス改善へ
akipii Oga
PDF
「Redmineの運用パターン集~私に聞くな、チケットシステムに聞け」
akipii Oga
PDF
リーンスタートアップにおける良い仮説、悪い仮説
Takaaki Umada
PPTX
振り返り(アジャイルレトロスペクティブズ)
Keisuke Tameyasu
PDF
ビジネスパーソンのためのDX入門講座エッセンス版
Tokoroten Nakayama
PDF
プロジェクトを成功させるチケット管理
Makoto SAKAI
PDF
scikit-learnを用いた機械学習チュートリアル
敦志 金谷
「プロジェクト管理」を超えた Redmine 活用の道のりとこれから
Minoru Maeda
チケット駆動開発の解説~タスク管理からプロセス改善へ
akipii Oga
「Redmineの運用パターン集~私に聞くな、チケットシステムに聞け」
akipii Oga
リーンスタートアップにおける良い仮説、悪い仮説
Takaaki Umada
振り返り(アジャイルレトロスペクティブズ)
Keisuke Tameyasu
ビジネスパーソンのためのDX入門講座エッセンス版
Tokoroten Nakayama
プロジェクトを成功させるチケット管理
Makoto SAKAI
scikit-learnを用いた機械学習チュートリアル
敦志 金谷
What's hot
(20)
PDF
【Unity道場スペシャル 2017京都】最適化をする前に覚えておきたい技術
Unity Technologies Japan K.K.
PPTX
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
Tokoroten Nakayama
PDF
Autoware: ROSを用いた一般道自動運転向けソフトウェアプラットフォーム
Takuya Azumi
PDF
「顧客の声を聞かない」とはどういうことか
Yoshiki Hayama
PDF
第2部 自作ライブラリ紹介
らりお ザ・何とは言わない天然水ソムリエ
PPTX
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
Tokoroten Nakayama
PDF
ソフトウェアテストの歴史と近年の動向
Keizo Tatsumi
PPTX
なぜコンピュータを学ばなければならないのか 21世紀の君主論
Tokoroten Nakayama
PDF
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
PDF
Oss貢献超入門
Michihito Shigemura
PDF
What is quality culture? Is it something tasty?
Yasuharu Nishi
PDF
うちのRedmineの使い方
Tomohisa Kusukawa
PDF
トヨタのかんばんに学ぶバックログ管理術
Yoshifumi Tsuda
PDF
UE4ディープラーニングってやつでなんとかして!環境構築編(Python3+TensorFlow)
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
Design Sprint と Lean UX: 顧客からの学び方
Takaaki Umada
PDF
日曜プログラマーが 1週間くらいで通信対戦ゲームを作ってみた
Yuusuke Takeuchi
PDF
KPTの理論と実践 公開用 プロジェクトへの「ふりかえりカイゼン」の導入で学んだこと
ESM SEC
PDF
モジュールの凝集度・結合度・インタフェース
Hajime Yanagawa
PDF
はじめる! Redmine (2015)
Go Maeda
PDF
ChatGPTをシステムに組み込むためのプロンプト技法 #chatgptjp
K Kinzal
【Unity道場スペシャル 2017京都】最適化をする前に覚えておきたい技術
Unity Technologies Japan K.K.
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
Tokoroten Nakayama
Autoware: ROSを用いた一般道自動運転向けソフトウェアプラットフォーム
Takuya Azumi
「顧客の声を聞かない」とはどういうことか
Yoshiki Hayama
第2部 自作ライブラリ紹介
らりお ザ・何とは言わない天然水ソムリエ
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
Tokoroten Nakayama
ソフトウェアテストの歴史と近年の動向
Keizo Tatsumi
なぜコンピュータを学ばなければならないのか 21世紀の君主論
Tokoroten Nakayama
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
Oss貢献超入門
Michihito Shigemura
What is quality culture? Is it something tasty?
Yasuharu Nishi
うちのRedmineの使い方
Tomohisa Kusukawa
トヨタのかんばんに学ぶバックログ管理術
Yoshifumi Tsuda
UE4ディープラーニングってやつでなんとかして!環境構築編(Python3+TensorFlow)
エピック・ゲームズ・ジャパン Epic Games Japan
Design Sprint と Lean UX: 顧客からの学び方
Takaaki Umada
日曜プログラマーが 1週間くらいで通信対戦ゲームを作ってみた
Yuusuke Takeuchi
KPTの理論と実践 公開用 プロジェクトへの「ふりかえりカイゼン」の導入で学んだこと
ESM SEC
モジュールの凝集度・結合度・インタフェース
Hajime Yanagawa
はじめる! Redmine (2015)
Go Maeda
ChatGPTをシステムに組み込むためのプロンプト技法 #chatgptjp
K Kinzal
Ad
Similar to スクレイピングとPython
(20)
PDF
Pythonによるwebアプリケーション入門 - Django編-
Hironori Sekine
PPTX
211120 他人の書いたPythonスクリプトをステップ実行で理解する
Takuya Nishimoto
PDF
Python & PyConJP 2014 Report
gree_tech
PDF
Python for Beginners ( #PyLadiesKyoto Meetup )
Ai Makabi
PPTX
地域 PyCon mini を広島で
Takuya Nishimoto
PPTX
MicroPython + ESP32
Takuya Nishimoto
PDF
Python札幌 2012/06/17
Shinya Okano
PDF
Django から各種チャットツールに通知するライブラリを作った話
Yusuke Miyazaki
PDF
Django で始める PyCharm 入門
kashew_nuts
PPTX
初学者のためのプロンプトエンジニアリング実践.pptx
Akifumi Niida
PDF
エキスパートPythonプログラミング改訂3版の読みどころ
Takayuki Shimizukawa
PDF
Pythonを始めよう
shouta yoshikai
PDF
Two sides of "Python Engineer Training Book"
Takanori Suzuki
PDF
Inside PyCon JP 2016
koedoyoshida
PDF
サードパーティパッケージの歩き方
Takesxi Sximada
PPTX
191208 python-kansai-nishimoto
Takuya Nishimoto
PDF
The tale of I and python / Python とのはなし
Takanori Suzuki
PDF
PyScriptの紹介
2bo 2bo
PDF
続Pythonによるwebスクレイピング入門
Hironori Sekine
PDF
Why python
TeppeiAkada1
Pythonによるwebアプリケーション入門 - Django編-
Hironori Sekine
211120 他人の書いたPythonスクリプトをステップ実行で理解する
Takuya Nishimoto
Python & PyConJP 2014 Report
gree_tech
Python for Beginners ( #PyLadiesKyoto Meetup )
Ai Makabi
地域 PyCon mini を広島で
Takuya Nishimoto
MicroPython + ESP32
Takuya Nishimoto
Python札幌 2012/06/17
Shinya Okano
Django から各種チャットツールに通知するライブラリを作った話
Yusuke Miyazaki
Django で始める PyCharm 入門
kashew_nuts
初学者のためのプロンプトエンジニアリング実践.pptx
Akifumi Niida
エキスパートPythonプログラミング改訂3版の読みどころ
Takayuki Shimizukawa
Pythonを始めよう
shouta yoshikai
Two sides of "Python Engineer Training Book"
Takanori Suzuki
Inside PyCon JP 2016
koedoyoshida
サードパーティパッケージの歩き方
Takesxi Sximada
191208 python-kansai-nishimoto
Takuya Nishimoto
The tale of I and python / Python とのはなし
Takanori Suzuki
PyScriptの紹介
2bo 2bo
続Pythonによるwebスクレイピング入門
Hironori Sekine
Why python
TeppeiAkada1
Ad
スクレイピングとPython
1.
スクレイピングと Python 2015/11/22 関根裕紀 PyCon mini
Hiroshima
2.
自己紹介 • 関根裕紀(せきね ひろのり) •
株式会社SQUEEZE • Twitter: @checkpoint
3.
業務でのPython • ホームシェア(民泊)などの物件の管理、ま たそれに伴う各種オペレーションを一元的に 管理するクラウドサービス を提供(Mister Suite) •
実際の業務ではDjango、Scrapyを使用 • エンジニア積極採用中!
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