毎朝Webサイトを開いてExcelへコピペしている人へ|Pythonで情報収集を自動化できる仕事・できない仕事

毎朝Webサイトを開いてExcelへコピペしている人へ|Pythonで情報収集を自動化できる仕事・できない仕事

記事
IT・テクノロジー
毎朝、決まったWebサイトを開く。

必要な情報を探す。

Excelへコピペする。

条件に合うものだけ残す。

これを毎日やっているなら、Pythonでかなり減らせる可能性があります。

ただし、ここで先に言っておきます。

「Webにある情報なら何でも自動取得できます」

ではありません。

できる仕事と、やらないほうがいい仕事があります。

僕自身、Pythonで複数サイトの情報収集、価格比較、画像取得、条件判定、通知まで組み合わせた仕組みを作ってきました。

その中で、普通に失敗もしています。

今日はそこも含めて書きます。

■ スクレイピングは「取得」で終わらせない

スクレイピングというと、

「Webサイトからデータを取る技術」

という説明になりがちです。

もちろん間違ってはいません。

でも実務で欲しいのは、HTMLを取ることではないんですよね。

たとえば、

・商品名を取得する
・価格を取得する
・URLを保存する
・重複を除外する
・条件に合う商品だけ残す
・ExcelやCSVへ出力する
・新着だけ通知する

ここまでやって、ようやく仕事が減ります。

ある案件では、フリマ系サイトとAmazon側の情報を比較し、利益条件に合う候補を抽出する仕組みを作りました。

別の仕組みでは、全国47都道府県を対象に情報を収集し、同じ商品を何度も再処理しないように重複判定を入れています。

情報が変わっていなければ、もう一度ChatGPT分析や通知をしない。
価格だけ変わった場合は、必要な部分だけ再計算する。

こういう設計を入れないと、動くけど無駄が多いツールになります。

■ 一番難しいのは「同じ商品か」の判断だったりする

価格比較の案件でハマったのが、商品名です。

片方のサイトには、

「Panasonic ○○ 新品」

と書いてある。

もう片方には型番だけ載っている。

人間なら写真や説明を見て「たぶん同じ」と判断できます。

でもプログラムは、文字が少し違うだけで別物として扱います。

実際、取得自体はできたのに、フリマ側とAmazon側で型番がほとんど一致せず、期待した比較結果にならないことがありました。

取れた。

でも使えない。

これ、スクレイピング案件では普通にあります。

だから僕は、取得件数だけを成功条件にしません。

「そのデータで次の判断ができるか」

まで見ます。

■ 20分以上待っても終わらないこともある

別のテストでは、Amazon側の情報取得が20分以上終わらないこともありました。

サイト側の構造、通信、アクセス制御、検索条件。
原因候補はいくつもあります。

さらに、CSVを出力できたと思ったらExcelで文字化け。

はい。

地味ですけど、実務ではこっちのほうが困ります。

利用者からしたら、

「Pythonが動いたか」

より、

「明日の朝も普通に使えるか」

のほうが大事です。

そのため、実運用ではタイムアウト、再試行、エラー時のログ、取得件数の上限、実行間隔なども設計します。

データ量が増えた仕組みでは、SQLiteのロック競合で画面が500エラーになる問題も出ました。

最終的には処理用のキューを別DBへ分けて対応しています。

クッッッソ地味です。

でも、この地味な部分が止まらないツールを作ります。

■ Pythonで自動化しやすい仕事

僕が相談を受けたときは、まず「判断基準を固定できるか」を見ます。

たとえば、

・特定キーワードを含む商品だけ欲しい
・価格が一定以下なら保存したい
・新着だけ通知したい
・毎日同じサイトを確認したい
・複数サイトの情報を1つのCSVにまとめたい
・取得後に決まった計算をしたい
・同じURLや商品IDは除外したい

このあたりは設計しやすいです。

人が毎回同じルールで判断しているなら、そのルールをプログラムへ移せる可能性があります。

逆に、

「なんとなく良さそうな商品」
「見た感じで競合が弱そう」
「写真の雰囲気で判断」

のように、人の感覚が大きい部分はそのままPythonへ置き換えにくいです。

ChatGPTを組み合わせて補助することはできます。

ただし、最終判断まで全部任せるのが正解とは限りません。

■ 自動化しないほうがいいケースもある

スクレイピングは技術的に取得できるかだけで決めません。

サイトの利用規約やrobots.txt、ログインの有無、アクセス頻度、個人情報、データの利用目的なども確認が必要です。

また、サイトの画面構造が頻繁に変わる場合、作った後の保守コストも上がります。

「一度作れば永久に動くツール」

ではありません。

ここは最初に伝えるようにしています。

取れるかどうかより、

「継続して使う価値があるか」

のほうが大事だからです。

■ 毎朝の確認作業なら、まず手順を書き出してみる

自動化できるか知りたい場合、難しい仕様書はいりません。

たとえば、

1. このWebサイトを開く
2. 「東京」で検索する
3. 価格が10,000円以下のものを見る
4. 商品名とURLをExcelへ入れる
5. 前日と同じ商品は除外する
6. 新しいものがあれば通知する

このくらいで十分です。

ここまで手順が決まっていれば、

Pythonだけで作るのか。
Googleスプレッドシートへ出すのか。
Discordやメールで通知するのか。
ローカルPCで実行するのか。
VPSで定期実行するのか。

必要な構成を考えられます。

■ 「取れるか」より「仕事が減るか」

スクレイピングの相談で、僕が一番気にするのはここです。

1000件取れるツールを作っても、最後に人が1000件確認するなら、仕事はあまり減っていません。

逆に50件しか取らなくても、

重複を消す。
条件で絞る。
必要な5件だけ通知する。

ここまでできれば、毎朝の確認はかなり軽くなります。

だから、最初に「何件取りたいですか?」だけではなく、

「取った後に何をしていますか?」

を聞きます。

毎朝Webサイトを開いて、同じ条件で確認して、Excelへ貼っている。

その作業があるなら、一度その手順をそのまま送ってください。

Python、GAS、Excelのどれが合うかも含めて整理できます。

スクレイピングを作ることが目的ではなく、毎日の手作業を減らすことが目的です。



サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す