Suche senden
Hochladen
続Pythonによるwebスクレイピング入門
•
89 gefällt mir
•
20,565 views
Hironori Sekine
Folgen
続Pythonによるwebスクレイピング入門
Weniger lesen
Mehr lesen
Ingenieurwesen
Melden
Teilen
Melden
Teilen
1 von 60
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
Plbj tugu di jakarta
Plbj tugu di jakarta
Raimundus Prasetyawan
Susunan acara raker
Susunan acara raker
Zen Zaad
Buku materi-pramuka-penegak
Buku materi-pramuka-penegak
Ridas Zabbarae
Daftar hadir
Daftar hadir
Yoga Dwi Paranoto
Kupon perpisahan 2015
Kupon perpisahan 2015
Didik Utomo
Contoh surat lamaran kerja umum 2
Contoh surat lamaran kerja umum 2
eduarsyabirin22
Presentasi universitas sebelas maret 2014 edit
Presentasi universitas sebelas maret 2014 edit
Yusup Sp
Tokoh-Tokoh Sejarahwan dan Ilmu Pengetahuan
Tokoh-Tokoh Sejarahwan dan Ilmu Pengetahuan
Deuis Rosdiana
Empfohlen
Plbj tugu di jakarta
Plbj tugu di jakarta
Raimundus Prasetyawan
Susunan acara raker
Susunan acara raker
Zen Zaad
Buku materi-pramuka-penegak
Buku materi-pramuka-penegak
Ridas Zabbarae
Daftar hadir
Daftar hadir
Yoga Dwi Paranoto
Kupon perpisahan 2015
Kupon perpisahan 2015
Didik Utomo
Contoh surat lamaran kerja umum 2
Contoh surat lamaran kerja umum 2
eduarsyabirin22
Presentasi universitas sebelas maret 2014 edit
Presentasi universitas sebelas maret 2014 edit
Yusup Sp
Tokoh-Tokoh Sejarahwan dan Ilmu Pengetahuan
Tokoh-Tokoh Sejarahwan dan Ilmu Pengetahuan
Deuis Rosdiana
Rancangan proposal alat_praktek
Rancangan proposal alat_praktek
ISLAMIYATI MIA
Contoh Proposal Pengajuan Meubelair Sekolah Dasar
Contoh Proposal Pengajuan Meubelair Sekolah Dasar
AmandaYella
Program kerja-pramuka
Program kerja-pramuka
Firdaus Abadi
JADWAL KEGIATAN PERSARI SIAGA.docx
JADWAL KEGIATAN PERSARI SIAGA.docx
krembanganselatan
Kurikulum abk-abc
Kurikulum abk-abc
Rahmat Permana
Contoh Jadwal Rapat Kerja Membuat Branding Sekolah
Contoh Jadwal Rapat Kerja Membuat Branding Sekolah
Namin AB Ibnu Solihin
Proses daur hidup kupu kupu
Proses daur hidup kupu kupu
Judith Bellamy
sejarah-pramuka.ppt
sejarah-pramuka.ppt
MuhammadAhsan563331
CONTOH DAFTAR RIWAYAT HIDUP
CONTOH DAFTAR RIWAYAT HIDUP
Maharoni Karang Serang
Rumah Adat Indonesia
Rumah Adat Indonesia
Anna Rinjana
edm 2023.pptx
edm 2023.pptx
Mima01KHS
PRESENTASI PRAKERIN
PRESENTASI PRAKERIN
ENDANG KIS
jadwal perjalanan kereta api ekonomi bisnis eksekutif
jadwal perjalanan kereta api ekonomi bisnis eksekutif
suga76rgl
ALAT DAN GAMBAR SENAM LANTAI
ALAT DAN GAMBAR SENAM LANTAI
ARISKA COMPNET
Kegiatan pramuka
Kegiatan pramuka
Alam Bahtiar
FORMAT KARTU KUNJUNGAN UKS
FORMAT KARTU KUNJUNGAN UKS
REVINA SRI UTAMI,S.Pd
Penyakit akibat kerja.pptx
Penyakit akibat kerja.pptx
sridwijastuti3
Makalah TOLAK PELURU.docx
Makalah TOLAK PELURU.docx
Rahmat Hidayat
Agenda acara musis
Agenda acara musis
Rikza Firdansyah
undangan IKM.pdf
undangan IKM.pdf
HendiAlfiandi1
CasperJSを使って任意のWebサイトを電子書籍化する方法
CasperJSを使って任意のWebサイトを電子書籍化する方法
Masayuki Isobe
ScrapyとPhantomJSを用いたスクレイピングDSL
ScrapyとPhantomJSを用いたスクレイピングDSL
Masayuki Isobe
Weitere ähnliche Inhalte
Was ist angesagt?
Rancangan proposal alat_praktek
Rancangan proposal alat_praktek
ISLAMIYATI MIA
Contoh Proposal Pengajuan Meubelair Sekolah Dasar
Contoh Proposal Pengajuan Meubelair Sekolah Dasar
AmandaYella
Program kerja-pramuka
Program kerja-pramuka
Firdaus Abadi
JADWAL KEGIATAN PERSARI SIAGA.docx
JADWAL KEGIATAN PERSARI SIAGA.docx
krembanganselatan
Kurikulum abk-abc
Kurikulum abk-abc
Rahmat Permana
Contoh Jadwal Rapat Kerja Membuat Branding Sekolah
Contoh Jadwal Rapat Kerja Membuat Branding Sekolah
Namin AB Ibnu Solihin
Proses daur hidup kupu kupu
Proses daur hidup kupu kupu
Judith Bellamy
sejarah-pramuka.ppt
sejarah-pramuka.ppt
MuhammadAhsan563331
CONTOH DAFTAR RIWAYAT HIDUP
CONTOH DAFTAR RIWAYAT HIDUP
Maharoni Karang Serang
Rumah Adat Indonesia
Rumah Adat Indonesia
Anna Rinjana
edm 2023.pptx
edm 2023.pptx
Mima01KHS
PRESENTASI PRAKERIN
PRESENTASI PRAKERIN
ENDANG KIS
jadwal perjalanan kereta api ekonomi bisnis eksekutif
jadwal perjalanan kereta api ekonomi bisnis eksekutif
suga76rgl
ALAT DAN GAMBAR SENAM LANTAI
ALAT DAN GAMBAR SENAM LANTAI
ARISKA COMPNET
Kegiatan pramuka
Kegiatan pramuka
Alam Bahtiar
FORMAT KARTU KUNJUNGAN UKS
FORMAT KARTU KUNJUNGAN UKS
REVINA SRI UTAMI,S.Pd
Penyakit akibat kerja.pptx
Penyakit akibat kerja.pptx
sridwijastuti3
Makalah TOLAK PELURU.docx
Makalah TOLAK PELURU.docx
Rahmat Hidayat
Agenda acara musis
Agenda acara musis
Rikza Firdansyah
undangan IKM.pdf
undangan IKM.pdf
HendiAlfiandi1
Was ist angesagt?
(20)
Rancangan proposal alat_praktek
Rancangan proposal alat_praktek
Contoh Proposal Pengajuan Meubelair Sekolah Dasar
Contoh Proposal Pengajuan Meubelair Sekolah Dasar
Program kerja-pramuka
Program kerja-pramuka
JADWAL KEGIATAN PERSARI SIAGA.docx
JADWAL KEGIATAN PERSARI SIAGA.docx
Kurikulum abk-abc
Kurikulum abk-abc
Contoh Jadwal Rapat Kerja Membuat Branding Sekolah
Contoh Jadwal Rapat Kerja Membuat Branding Sekolah
Proses daur hidup kupu kupu
Proses daur hidup kupu kupu
sejarah-pramuka.ppt
sejarah-pramuka.ppt
CONTOH DAFTAR RIWAYAT HIDUP
CONTOH DAFTAR RIWAYAT HIDUP
Rumah Adat Indonesia
Rumah Adat Indonesia
edm 2023.pptx
edm 2023.pptx
PRESENTASI PRAKERIN
PRESENTASI PRAKERIN
jadwal perjalanan kereta api ekonomi bisnis eksekutif
jadwal perjalanan kereta api ekonomi bisnis eksekutif
ALAT DAN GAMBAR SENAM LANTAI
ALAT DAN GAMBAR SENAM LANTAI
Kegiatan pramuka
Kegiatan pramuka
FORMAT KARTU KUNJUNGAN UKS
FORMAT KARTU KUNJUNGAN UKS
Penyakit akibat kerja.pptx
Penyakit akibat kerja.pptx
Makalah TOLAK PELURU.docx
Makalah TOLAK PELURU.docx
Agenda acara musis
Agenda acara musis
undangan IKM.pdf
undangan IKM.pdf
Andere mochten auch
CasperJSを使って任意のWebサイトを電子書籍化する方法
CasperJSを使って任意のWebサイトを電子書籍化する方法
Masayuki Isobe
ScrapyとPhantomJSを用いたスクレイピングDSL
ScrapyとPhantomJSを用いたスクレイピングDSL
Masayuki Isobe
オープンデータのためのスクレイピング
オープンデータのためのスクレイピング
直之 伊藤
Pythonによるwebアプリケーション入門 - Django編-
Pythonによるwebアプリケーション入門 - Django編-
Hironori Sekine
Pythonスタートアップ勉強会201109 python入門
Pythonスタートアップ勉強会201109 python入門
Takayuki Shimizukawa
Rubyで始めるWebスクレイピング
Rubyで始めるWebスクレイピング
Takuro Sasaki
Python入門 : 4日間コース社内トレーニング
Python入門 : 4日間コース社内トレーニング
Yuichi Ito
「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python
Takanori Suzuki
python-twitterを用いたTwitterデータ収集
python-twitterを用いたTwitterデータ収集
Hikaru Takemura
PythonによるWebスクレイピング入門
PythonによるWebスクレイピング入門
Hironori Sekine
Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編
Etsuji Nakai
Pythonで簡単ネットワーク分析
Pythonで簡単ネットワーク分析
antibayesian 俺がS式だ
Andere mochten auch
(12)
CasperJSを使って任意のWebサイトを電子書籍化する方法
CasperJSを使って任意のWebサイトを電子書籍化する方法
ScrapyとPhantomJSを用いたスクレイピングDSL
ScrapyとPhantomJSを用いたスクレイピングDSL
オープンデータのためのスクレイピング
オープンデータのためのスクレイピング
Pythonによるwebアプリケーション入門 - Django編-
Pythonによるwebアプリケーション入門 - Django編-
Pythonスタートアップ勉強会201109 python入門
Pythonスタートアップ勉強会201109 python入門
Rubyで始めるWebスクレイピング
Rubyで始めるWebスクレイピング
Python入門 : 4日間コース社内トレーニング
Python入門 : 4日間コース社内トレーニング
「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python
python-twitterを用いたTwitterデータ収集
python-twitterを用いたTwitterデータ収集
PythonによるWebスクレイピング入門
PythonによるWebスクレイピング入門
Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編
Pythonで簡単ネットワーク分析
Pythonで簡単ネットワーク分析
Ähnlich wie 続Pythonによるwebスクレイピング入門
kintoneアプリをjavascriptでいじってみよう
kintoneアプリをjavascriptでいじってみよう
Kyouhei Kitagawa
アジャイルソフトウェア開発の道具箱
アジャイルソフトウェア開発の道具箱
Koichi ITO
20170415 mttokyo handson
20170415 mttokyo handson
Six Apart
クラウドネイティブが行なういまどきWebサービス開発
クラウドネイティブが行なういまどきWebサービス開発
Yuuji Arakaki
Spring I/O 2015 報告
Spring I/O 2015 報告
Takuya Iwatsuka
Movable Type Data API Swiftアプリ作成事例
Movable Type Data API Swiftアプリ作成事例
FromF
スクレイピングとPython
スクレイピングとPython
Hironori Sekine
リモートチームとふりかえり改善フレームワーク
リモートチームとふりかえり改善フレームワーク
Maehana Tsuyoshi
楽天のSplunk as a service
楽天のSplunk as a service
Rakuten Group, Inc.
Introducing microsoft learn
Introducing microsoft learn
ru pic
Swagger jjug ccc 2018 spring
Swagger jjug ccc 2018 spring
kounan13
kintoneの大規模フロントエンド開発とツール
kintoneの大規模フロントエンド開発とツール
Yasuharu Sakai
DRIVE CHARTの裏側 〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜
DRIVE CHARTの裏側 〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜
DeNA
第3回 開発ツールチラ見せ♡ナイト オープニングプレゼン
第3回 開発ツールチラ見せ♡ナイト オープニングプレゼン
Tomoyuki Sugita
【MashupAwards11】kintoneのご紹介
【MashupAwards11】kintoneのご紹介
Koji Asaga
スマートフォンアプリエンジニアのための最新プロトタイピング講座
スマートフォンアプリエンジニアのための最新プロトタイピング講座
HiroyukiHirota
こだわりのkintone
こだわりのkintone
Yusuke Amano
OneNote のススメ。 Office 365 利活用の促進 - クライアント推し。
OneNote のススメ。 Office 365 利活用の促進 - クライアント推し。
Akira Fukami
【A-4】kintone API、JavaScript APIの実力
【A-4】kintone API、JavaScript APIの実力
Cybozucommunity
Lt駆動開発 03 プレゼン
Lt駆動開発 03 プレゼン
Kakigi Katuyuki
Ähnlich wie 続Pythonによるwebスクレイピング入門
(20)
kintoneアプリをjavascriptでいじってみよう
kintoneアプリをjavascriptでいじってみよう
アジャイルソフトウェア開発の道具箱
アジャイルソフトウェア開発の道具箱
20170415 mttokyo handson
20170415 mttokyo handson
クラウドネイティブが行なういまどきWebサービス開発
クラウドネイティブが行なういまどきWebサービス開発
Spring I/O 2015 報告
Spring I/O 2015 報告
Movable Type Data API Swiftアプリ作成事例
Movable Type Data API Swiftアプリ作成事例
スクレイピングとPython
スクレイピングとPython
リモートチームとふりかえり改善フレームワーク
リモートチームとふりかえり改善フレームワーク
楽天のSplunk as a service
楽天のSplunk as a service
Introducing microsoft learn
Introducing microsoft learn
Swagger jjug ccc 2018 spring
Swagger jjug ccc 2018 spring
kintoneの大規模フロントエンド開発とツール
kintoneの大規模フロントエンド開発とツール
DRIVE CHARTの裏側 〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜
DRIVE CHARTの裏側 〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜
第3回 開発ツールチラ見せ♡ナイト オープニングプレゼン
第3回 開発ツールチラ見せ♡ナイト オープニングプレゼン
【MashupAwards11】kintoneのご紹介
【MashupAwards11】kintoneのご紹介
スマートフォンアプリエンジニアのための最新プロトタイピング講座
スマートフォンアプリエンジニアのための最新プロトタイピング講座
こだわりのkintone
こだわりのkintone
OneNote のススメ。 Office 365 利活用の促進 - クライアント推し。
OneNote のススメ。 Office 365 利活用の促進 - クライアント推し。
【A-4】kintone API、JavaScript APIの実力
【A-4】kintone API、JavaScript APIの実力
Lt駆動開発 03 プレゼン
Lt駆動開発 03 プレゼン
続Pythonによるwebスクレイピング入門
1.
続PythonによるWeb スクレイピング入門 関根裕紀
2.
自己紹介 • 関根裕紀(せきね ひろのり) •
アライドアーキテクツ株式会社 • ソフトウェア・エンジニア • マーケティングを支援するサービスの開発 • 新卒メンバー、若手メンバーの教育支援 • Twitter: @checkpoint
3.
Pythonとの関わり • PyCon JP
スタッフ (2014, 2015) • Pythonエンジニア養成読本(Web開発) • スピーカー • AWDD • LLDiver • PyCon JP 2014 • Phone Symposium Tokyo 2015
4.
Pythonもくもく会(毎月)
5.
アジェンダ • Webスクレイピングとは? • PythonでのWebスクレイピング •
Webスクレイピングのサンプル紹介
6.
Webスクレイピングとは? Webスクレイピングとは、WebサイトからWebページのHTMLデータを収 集して、特定のデータを抽出、整形し直すことである。 Webスクレイピングを行うことで、Webページを対象として、あたかも Web APIを利用しているかのようにデータを効率的に取得・収集すること が可能になる。用途の例としては、部分的にコンテンツを取り出して携帯 電話向けのコンテンツを生成したり、小見出しの一覧を生成したり、といっ た使い方あある。Webスクレイピングは様々な手段で実現可能であるが、 PHPやPerlといったスクリプト言語を使用して行われることが多い。 ( http://www.sophia-it.com/content/Webスクレイピング
) IT用語辞典より
7.
Webスクレイピング • WebサイトからHTMLのデータを収集 • 特定のデータを抽出、加工 •
抽出したデータを再利用 • クローリング + スクレイピング
8.
クローリング • 英語の意味は、[はう、ゆっくり進む] • Webページのリンクの内容をたどる •
Webページの内容をダウンロードして収集 • クローラー、スパイダーと呼ばれる
9.
スクレイピング • 英語の意味は、[ 削ること
] • ページの内容から必要な情報を抽出すること
10.
用途 • 検索エンジン • 価格比較 •
気象データの監視 • サイトの変更検出 • Webサイトの情報解析、研究(比較、分類、統計など) • マッシュアップ
11.
方法(1) • Webサービス、アプリケーション • Yahoo!
Pipes( https://pipes.yahoo.com/ ) • kimono ( https://www.kimonolabs.com/ ) • import.io ( https://import.io/ )
12.
方法(2) • Ruby • Nokogiri •
Mechanize • Perl • Web::Scraper • JavaScript • CasperJS
13.
Pythonでのスクレイピング • 標準ライブラリ • BeautifulSoup •
pyquery • Scrapy • その他
14.
Python バッテリー付属言語
15.
標準ライブラリ • Pythonの標準ライブラリは充実している • ネットワーク、正規表現、etc •
Pythonの処理系だけあれば良い • 簡単なスクレイピングであれば十分実用的
16.
サンプル
17.
Beautiful Soup • 2004年位から存在するライブラリ •
HTMLやXMLからデータを抽出して取得できる • 複数のパーサーに対応、パーサーを指定できる • 最新バーションはBeautiful Soup 4系 • Python 2.7、Python 3.2に対応
18.
サンプル
19.
実行結果
20.
pyquery • jQuery風にHTML/XML操作が可能 • パーサーにはlxmlを使用 •
JQuery風のセレクタを利用できる
21.
サンプル
22.
実行結果
23.
Scrapy Scarpyは速くて、ハイレベルなスクレイピング クローラーのフレームワーク。Webサイトのク ロールと、構造化されたデータを取り出すのに 使用する。幅広い目的に使用できる。データマ イニングから、モニタリング、自動テストなど
24.
Scrapy
25.
Scrapyの特徴 • クローリング、スクレイピングフレームワーク • シンプル、拡張性がある •
バッテリー付属 • ドキュメント、テストが充実 • コミュニティが活発 • Python2.7のみ対応
26.
Scrapyの主な機能 • Webページからの情報抽出 • Robots.txtのパース •
ドメイン、IPアドレス単位のクロール間隔調整 • 並行処理 • エラー時のリトライ(回数を設定) http://orangain.hatenablog.com/entry/scrapy
27.
Scrapyのアーキテクチャ https://scrapy.readthedocs.org/en/latest/topics/architecture.html
28.
コンポーネント • Scrapy Engine •
Scheduler • Downloader • Spiders • Item Pipeline • Downloader middlewares • Spider middlewares
29.
Scrapy Engine • コンポーネント間のデータフローを制御する •
特定のアクションが発生したら、イベントを 起こす
30.
Spider • ユーザーが作成するカスタムクラス • 取得したいURL、抽出する項目を記述する •
ダウンロードしてコンテンツをスクレイピン グして、Itemを作成する
31.
Scheduler • EngineからRequestを受け取り、スケジュー リングする
32.
Downloader • 実際にWebページを取得する。 • Downloader
middlewaresで処理を差し込む 事ができる。(キャッシュなど)
33.
Item Pipeline • スパイダーによって抽出されたアイテムを出力 •
データのクレンジング、検証 • 永続化(JSON、File、DB、Mail)など
34.
手順 • Scrapyプロジェクトの作成 • 抽出するアイテムの定義 •
アイテムの抽出とクローリングのためのSpiderを作成 • 抽出したアイテムのパイプライン処理の作成 • 基本はSpiderとItem部分を書いていく
35.
サンプル
36.
プロジェクトの作成 $ scrapy startproject
scrapy_sample
37.
抽出するItem定義 $ vi items.py
38.
Spider作成 $ vi spiders/mininova.py
39.
実行 $ scrapy crawl
mininova -o scraped_data.json
40.
サンプル紹介 • Airbnbの物件情報をスクレイピング • 京都、沖縄(任意の場所) •
6/27 - 6/28(この期間で宿泊可能な物件) • 20000円以内 • 価格の分布図を表示(Web画面)
41.
物件情報
42.
ライブラリ - Scraping •
requests (HttpClient) • Beautiful Soup (Scraping) • SqlAlchemy ( O/R Mapper)
43.
ライブラリ - Web •
Bottle ( Web Application Framework) • Highcharts ( Graph Library) • SqlAlchemy ( O/R Mapper)
44.
Bottle • 軽量なWebアプリケーションフレームワーク • ルーティング •
テンプレートエンジン • HTTPユーティリティ • ビルトインのサーバー
45.
HelloWorld
46.
SQLAlchemy • データベースやSQLに関連する機能を提供す るライブラリ • O/Rマッパーは提供される機能のうちの1つ
47.
モデルの定義
48.
レコード作成、検索
49.
デモ
50.
デモ
51.
ソースコード(モデルの定義)
52.
ソースコード(スクレイピング)
53.
ソースコード(クローリング)
54.
ソースコード(Web)
55.
ソースコード(Web)
56.
ソースコード(Web)
57.
まとめ • Pythonでスクレイピングを行う場合、色々な アプローチがある。 • 標準のライブラリから、フレームワークまで 選択肢は沢山ある。 •
実際の要件に合わせて使用すれば良い。
58.
参考資料 • 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( 注意事項 )
59.
宣伝 • PyCon JP
2015( https://pycon.jp/2015/ ) • 10月9日(金) - 10月12日(月) • トークセッションの募集中 • チュートリアル講師も募集中
60.
ご静聴ありがとうございました
Jetzt herunterladen