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

    PyTorchのキホンを理解する

    PyTorchのキホンを理解するNumpyのndarray(多次元配…

  2. Python

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

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

  3. ChatGPT

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

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

  4. Python

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

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

  5. Python

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

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

コメント

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

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

CAPTCHA


カテゴリ

最近の記事

  1. コンポーザブルCDPにおけるSnowflakeのマルチモーダ…
  2. boxMCPサーバーを使ってみた
  3. #ai-datacloud勉強会でマルチモーダルに触れた日
  4. Matillion ETLを安全に使いたい人へ送る、SSL対…
  5. LangGraphのソースコードから見る今更聞けないAIエー…
  1. KARTE

    KARTE:カスタムイベントでページの要素を取得して接客を出す
  2. ObservePoint

    今こそCookieについておさらい
  3. Databricks

    ScalaでDatabricksのDataFrameを扱う
  4. Firebase Analytics

    GoogleAnalytics Apps+Web プロパティをBigQueryと…
  5. Adobe Experience Cloud

    Adobe Summit 2020レポート: Unravel Customer …
PAGE TOP