Python

Python クローリング&スクレイピング

最初に

顧客マスタのデータに別の角度から考察を加えたいとき、外部から何かしらデータを持ってくる必要があります。(参考記事:市区町村一覧・自治体の一覧を取得する(python))
APIが用意されいている場合(WikipediaやTwitter等)は素直にAPIを叩けばよいですが、必ずしもそのように二次利用が前提として作られているサイトばかりではないので、自分で必要な際にはスクレイピング(あるいはクローリングも)する必要があります。
今回はそのスクレイピング・クローリングをするための技法がガイドである(Pythonクローリング&スクレイピング -データ収集・解析のための実践開発ガイド) が大変良い本であったので紹介させていただきます。

各章の内容など

全体として:
単にスクレイピングをするだけではなく、フレームワークを用いてクローラーを作成・AWS等クラウドサービスを用いて仮想マシンでサーバーを立ち上げ継続的な運用・取得したデータをmysql等で管理 継続したクローラーの運用ができるようになるまでの内容が詰まっています。そのため一つ一つの解説は多少分かりにくいところはあるかもしれませんが、必要な技術の見通しが非常に良いです。
第0章:
MacOSとLinux系の指定があるのでWindowsの方には仮想マシンをVirtualboxやVagrantで立ち上げるところから始まります。また、Linuxに不慣れな方にはコマンドの解説もあります。
第1章:
Wgetを用いてUnixコマンドだけでスクレイピングしています。この辺はパラ読みでしたが、格納したデータをきっちり扱おうとするとしっかり読んだほうが良いかもしれないです。
第2章:
pythonのインストール~標準ライブラリurllibを用いてのスクレイピング
python入門書ではないのでざっと要点をおさらいしたあと標準ライブラリを用いてスクレイピング体験しています。一度経験があればここは流し読みでよいかも?
pythonをほとんどさわったことがなければ触るのもよいと思います。
第3章:
pipでrequestsをインストールしてスクレイピング・データの格納をしています。
この辺からがかなり実践的になっている気がします。mysqlの入門にもなっているので3・4章を読めば一回きりのスクレイピングには対応できそうです。(XMLの勉強は自習で多少必要そうですが)
第4章:
retryとCacheを用いてクローラーを作っています。robots.txtの取り扱いも。
第5章:
pandas等を用いた実用法です。ここは正直読み飛ばしてしまいました…
第6章:
フレームワークscrapy
Scrapyがあまりにも便利なのでauのAndroidのUser Agentをクローリングしてみた」なども参考に少しいじってみました。
フレームワークそのものの勉強も大変ですが、複数のサイトからスクレイピングする予定がある場合、継続的な処理をする場合は学習コストに見合う価値があるようです。今回はある程度いじる程度にとどめておきました。
ちなみに画像の収集に使われるFlickrを用いた画像活用法も載っています。
第7章:
継続的管理運用
AWSやGCP状に仮想サーバーを立ててCronjobで実行させるまでです。

まとめ

上記の通り内容が通り一編詰まっていて非常に読みごたえがあります。
pythonを初めてある程度たったけどこれで実際何ができるんだ?みたいな人は挑戦してみるとよいかもしれないです。
純粋にクローレイング&スクレイピングの参考にするなら辞書代わりにしてもよいかもしれないです。サンプルのリンクはやや古いかもしれないですが(2018/12/13現在)
こんなことしたいんだけどどうしたらよいのだろう、となったときに目を通すとヒントが見つかりそうです。

AdobeAnalyticsでReactNativeアプリを計測する前のページ

Adobe Analytics: DWHレポートの日付列をBigQueryのDate型として扱う次のページ

ピックアップ記事

  1. 最速で理解したい人のためのIT用語集

関連記事

  1. Python

    モダンデータスタックなワークフローオーケストレーションツール「Prefect」 試してみた

    こんにちは!みなさんPrefectについて知っていますでしょうか?…

  2. Google Cloud Platform

    Vertex AI Embeddings for Text によるテキストエンベディングをやってみた…

    こんにちは、石原と申します。自然言語処理(NLP)は近年のA…

  3. Python

    Streamlit in Snowflakeによるダッシュボード作成

    こんにちは、エクスチュアの石原です。前回に引き続き、Stre…

  4. Python

    Streamlitを使った簡単なデータアプリケーション作成ガイド

    はじめにこんにちは、エクスチュアの石原です。データサ…

  5. Python

    【完全版】MacでSeleniumを環境構築から実行まで 〜Python&Chrome〜

    Seleniumって何?Selenium(セレニウム)とは、Webア…

  6. Python

    わかりやすいPyTorch入門④(CNN:畳み込みニューラルネットワーク)

    MNISTの手書き数字画像をCNNで分類前回の記事でも利用したMNI…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

CAPTCHA


カテゴリ
最近の記事
  1. 【dbts25】Snowflake×PostgreSQLのニ…
  2. TROCCO dbt連携編
  3. KARTEの「フレックスエディタ(β)」登場!ノーコードでこ…
  4. dbt Projects on Snowflake使ってみた…
  5. Cortex Analystを使ってみた
  1. Qualtrics

    イベントレポート Qualtrics XM on tour TOKYO 2022…
  2. Adobe Analytics

    Adobe Analytics: BigQuery+Lookerでアトリビューシ…
  3. Google Analytics 4

    GA4のスキーマ変更にご用心
  4. IT用語集

    レンダリング(Rendering)って何?
  5. Adobe Analytics

    Azure DatabricksでAdobe AnalyticsのDatafee…
PAGE TOP