Submit Search
続Pythonによるwebスクレイピング入門
89 likes
20,592 views
Hironori Sekine
続Pythonによるwebスクレイピング入門
Engineering
Read more
1 of 60
Download now
Downloaded 139 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
More Related Content
PDF
FPGAX2019
Hiroki Nakahara
PDF
FinOpsGreenITについて学んでみた_2024/07/11(木)開催資料
ariariari1112
PDF
TYPES DE TEXTES.pdf
feray3
PDF
[DL輪読会]Deep Anomaly Detection Using Geometric Transformations
Deep Learning JP
PDF
NVIDIA Seminar ディープラーニングによる画像認識と応用事例
Takayoshi Yamashita
PDF
OWASP Top 10 超初級編 (2021 Ver.)
AkitadaOmagari
PDF
Traumato genou
Eugène NJEBARIKANUYE
PDF
segmentation-modelsでざっくり動かすセマンティックセグメンテーション(U-Net)
Haruka Shimojima
FPGAX2019
Hiroki Nakahara
FinOpsGreenITについて学んでみた_2024/07/11(木)開催資料
ariariari1112
TYPES DE TEXTES.pdf
feray3
[DL輪読会]Deep Anomaly Detection Using Geometric Transformations
Deep Learning JP
NVIDIA Seminar ディープラーニングによる画像認識と応用事例
Takayoshi Yamashita
OWASP Top 10 超初級編 (2021 Ver.)
AkitadaOmagari
Traumato genou
Eugène NJEBARIKANUYE
segmentation-modelsでざっくり動かすセマンティックセグメンテーション(U-Net)
Haruka Shimojima
Viewers also liked
(12)
PPTX
CasperJSを使って任意のWebサイトを電子書籍化する方法
Masayuki Isobe
PDF
ScrapyとPhantomJSを用いたスクレイピングDSL
Masayuki Isobe
PDF
オープンデータのためのスクレイピング
直之 伊藤
PDF
Pythonによるwebアプリケーション入門 - Django編-
Hironori Sekine
PPTX
Pythonスタートアップ勉強会201109 python入門
Takayuki Shimizukawa
PDF
Rubyで始めるWebスクレイピング
Takuro Sasaki
PDF
Python入門 : 4日間コース社内トレーニング
Yuichi Ito
PDF
「Python言語」はじめの一歩 / First step of Python
Takanori Suzuki
PDF
python-twitterを用いたTwitterデータ収集
Hikaru Takemura
PDF
PythonによるWebスクレイピング入門
Hironori Sekine
PDF
Python 機械学習プログラミング データ分析ライブラリー解説編
Etsuji Nakai
PDF
Pythonで簡単ネットワーク分析
antibayesian 俺がS式だ
CasperJSを使って任意のWebサイトを電子書籍化する方法
Masayuki Isobe
ScrapyとPhantomJSを用いたスクレイピングDSL
Masayuki Isobe
オープンデータのためのスクレイピング
直之 伊藤
Pythonによるwebアプリケーション入門 - Django編-
Hironori Sekine
Pythonスタートアップ勉強会201109 python入門
Takayuki Shimizukawa
Rubyで始めるWebスクレイピング
Takuro Sasaki
Python入門 : 4日間コース社内トレーニング
Yuichi Ito
「Python言語」はじめの一歩 / First step of Python
Takanori Suzuki
python-twitterを用いたTwitterデータ収集
Hikaru Takemura
PythonによるWebスクレイピング入門
Hironori Sekine
Python 機械学習プログラミング データ分析ライブラリー解説編
Etsuji Nakai
Pythonで簡単ネットワーク分析
antibayesian 俺がS式だ
Ad
Similar to 続Pythonによるwebスクレイピング入門
(12)
PDF
スクレイピングとPython
Hironori Sekine
PPTX
PythonによるWebスクレイピング勉強会
淳子 土肥
PPTX
スクレイピングをやってみた
憲 山本
PPTX
Webクローリング&スクレイピングの最前線 公開用
Lumin Hacker
PDF
Tour of Scraping
Kenta Yonekura
PDF
不純な動機で「puppeteer」 でスクレイピングを始めてみた
anysense_ss
PPTX
スクレイピングは避けられない
Daiki Kojima
PDF
スクレイピングのススメ
Tomoki Hasegawa
PDF
Lispmeetup #56 Common lispによるwebスクレイピング技法
Satoshi imai
PDF
Anemoneによるクローラー入門
Tasuku Nakano
PPTX
これからの「スクレイピング」の話をしよう
iPride Co., Ltd.
PDF
20190202 powerbi scraping
良一 駒板
スクレイピングとPython
Hironori Sekine
PythonによるWebスクレイピング勉強会
淳子 土肥
スクレイピングをやってみた
憲 山本
Webクローリング&スクレイピングの最前線 公開用
Lumin Hacker
Tour of Scraping
Kenta Yonekura
不純な動機で「puppeteer」 でスクレイピングを始めてみた
anysense_ss
スクレイピングは避けられない
Daiki Kojima
スクレイピングのススメ
Tomoki Hasegawa
Lispmeetup #56 Common lispによるwebスクレイピング技法
Satoshi imai
Anemoneによるクローラー入門
Tasuku Nakano
これからの「スクレイピング」の話をしよう
iPride Co., Ltd.
20190202 powerbi scraping
良一 駒板
Ad
続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.
ご静聴ありがとうございました
Download