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

    回帰分析はかく語りき Part1 単回帰分析

    こんにちは、小郷です。回帰と言えばフリードリヒ・ニーチェの永劫回帰を…

  2. Google Cloud Platform

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

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

  3. Python

    わかりやすいPyTorch入門②(ニューラルネットワークによる分類)

    ニューラルネットワークを使ってワインの種類を分類する今回はsciki…

  4. Python

    pythonを使ったダミーデータ生成

    最初になにか発見したことを総合研究所で発表したり、デモ資料を作ったり…

  5. Python

    PyTorchのキホンを理解する

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

  6. ChatGPT

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

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

コメント

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

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

CAPTCHA


カテゴリ
最近の記事
  1. モック作成が面倒で “楽” した話
  2. Fivetranからdbtプロジェクトを実行する
  3. Account Engagementで送るメールをマルチエー…
  4. 協力と裏切りの理論
  5. 【Snowflake Tips】Content-Typeには…
  1. Mouseflow

    Mouseflowのフィルター機能が変わりました!
  2. ブログ

    ③DMPについてーKrux
  3. dbt

    dbt_expectationsでデータ品質を向上させよう
  4. Google BigQuery

    GCP: 今月のGCP課金額をslackに自動的に書き込む
  5. Mouseflow

    Mouseflow新機能その1 -レコーディングへのコメント機能
PAGE TOP