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現在)
こんなことしたいんだけどどうしたらよいのだろう、となったときに目を通すとヒントが見つかりそうです。

ピックアップ記事

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

関連記事

  1. Python

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

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

  2. ChatGPT

    ChatGPTとVSCodeの連携方法とその使用例:開発効率を飛躍的にアップさせる

    こんにちは、石原と申します。今回のブログが初投稿となります。…

  3. Python

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

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

  4. ChatGPT

    LangChainって何?: 次世代AIアプリケーション構築 その1

    こんにちは、エクスチュアの石原です。近年、大規模言語モデル(…

  5. Python

    Streamlit in SnowflakeによるStreamlitアプリケーション作成

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

  6. ChatGPT

    LangChainって何?: 次世代AIアプリケーション構築 その3

    こんにちは、エクスチュアの石原です。こちらは第3回の記事にな…

コメント

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

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

CAPTCHA


カテゴリ

最近の記事

  1. Snowflake無料トライアルの始め方
  2. TROCCO入門
  3. コンポーザブルCDPにおけるSnowflakeのマルチモーダ…
  4. boxMCPサーバーを使ってみた
  5. #ai-datacloud勉強会でマルチモーダルに触れた日
  1. Adobe Analytics

    Adobe AnalyticsとGoogle Analyticsの違い① セグメ…
  2. ヒートマップ

    ムーブメント・ヒートマップ
  3. ブログ

    アドテック東京2014
  4. ObservePoint

    GPC (Global Privacy Control)とは?
  5. Mouseflow

    Mouseflow:計測対象からの除外
PAGE TOP