見出し画像

自動でネットから情報を集めよう【ウェブスクレイピングの話】

SIM3です。

クライアントから打診アリ。

「〇〇というサイトのランキングを毎日取得するツールがほしい」

はい

「できる限りランニングコスト安くよろしく」

えー。

というわけで、ウェブスクレイピングの話です。noteじゃなくQiitaで書くような話。

ウェブスクレイピングとは教えてWikipedia

ウェブスクレイピング(英: Web scraping)とは、ウェブサイトから情報を抽出するコンピュータソフトウェア技術のこと。通常このようなソフトウェアプログラムは低レベルのHTTPを実装することで、もしくはウェブブラウザを埋め込むことによって、WWWのコンテンツを取得する。ウェブスクレイピングはユーザーが手動で行なうこともできるが、一般的にはボットやクローラ(英: Web crawler)を利用した自動化プロセスを指す。

https://ja.wikipedia.org/wiki/%E3%82%A6%E3%82%A7%E3%83%96%E3%82%B9%E3%82%AF%E3%83%AC%E3%82%A4%E3%83%94%E3%83%B3%E3%82%B0

簡単に説明するとヤフオクの任天堂Switchの取引価格の毎日自動で取得してデータベースに入れて分析したりします。
クライアント様は収集を自動で行うツールをご所望とのこと。

息をするのも面倒くさい世代の人間なので、できる限り楽したいので既存ツールで探す。

・Octoparse
ええやん!なんでもできそうやん!!時代はコーディングレスかー。フリーだと定期自動実行できないのね。じゃあ有料版で…$75/月って高ッ!しかも月額制とか抜け目ないわー。フリー版+PowerAutomate(アプリケーションの手動作業を自動化するツール)と合わせ技でどうにかできないかね。※ちゃんと対策されてました。世の中甘くない。

・import.io
無料!イイネーイイネー。何でもできそうじゃん。良い世の中になったなぁ。…クエリ数の限度あるのか…。無料には無料の理由があるのね。

・Beautiful Soup
はいはい、分かってた。高性能で無料が良ければ自作しろってことね。分かりました~書きます、書きますよ~。稼働環境作ったりもめんどいんだよな…。

というわけでいちおくとにせんねんぶりにPythonで。
先駆者の情報はイッパイあるので参考にさせて頂きます。
超文句垂れてましたが、これだけ情報があれば書くのは問題なくいけそう。

・躓いたところメモ
七転八倒ぐらいコケまくった。学びは多かったけど傷だらけのバラードですわ。

1.取得できない値がある。
画像データに変換されているような情報はブラウザドライバ経由で値を取得する必要がある。

2.ある日いきなり、ブラウザドライバのバージョン違うと怒られる。
webdriver-manager で Chrome webdriver を自動更新する。

3.タスクスケジューラの失敗時の再実行してくれない。
見損ないました。実家に帰られせ頂きます(プログラム内でリトライで対応。タスクスケジューラのリターンコードの判別がうまくいってない?)

・結局
なんやかんやで細々調整してたら時間かかってしまった。
まぁ同じような依頼があったら流用できるからヨシ!

そんじゃまた。

この記事が気に入ったらサポートをしてみませんか?