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入門①(学習と評価)

    Google ColabでPyTorchを触ってみるまずはGoogl…

  2. Python

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

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

  3. Python

    わかりやすいPyTorch入門⑤(CNNとデータの拡張)

    CNNとデータの拡張データの拡張とは今回は前回学んだCNNの練習に…

  4. Python

    PyTorchのキホンを理解する

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

  5. Python

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

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

  6. Adobe Analytics

    Google Analytics検証を効率的に進める方法

    0.初めにGoogle Analyticsがデータをとれているか検証…

コメント

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

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

CAPTCHA


最近の記事

  1. Pythonを用いたAmazon S3の署名付きURLの発行…
  2. Snowflakeとは?Data Cloud World T…
  3. SnowflakeのData Clean Roomを基礎から…
  4. SnowflakeのData Clean Roomを基礎から…
  5. SnowflakeのData Clean Roomを基礎から…
  1. Amazon Web Services

    Amazon Redshift ビルド168まとめ
  2. Linux

    Linux Tips: コマンドラインでJSONをCSVに変換する
  3. KARTE

    CXツール「KARTE」ってどんなツール?主な機能や魅力をざっくり紹介!
  4. ヒートマップ

    MouseflowをAdobe Analyticsと一緒に使う
  5. Amazon Web Services

    ELB (ALB・NLB・CLB) をサクッと学ぶ
PAGE TOP