「これって簡単にできるんじゃない?」って思ったのに、実はめちゃくちゃ大変だった話をするね🥺
多分、ウェブから大量に情報を集めたいって思ったこと、一度はあるよね?わたしもこの前、36,000ページもあるディレクトリサイトをスクレイピングしなきゃいけなくて、最初は「パッと終わらせちゃおう!」って気軽に考えてたの💭
でも、実際やってみたら…想像以上にぐちゃぐちゃで、何度も挫折しちゃったんだよね😳
最初のトライ:見た目がわかりやすそうなn8nで挑戦🎨
まずは「これなら簡単そう!」と思ってn8nっていうツールを使ってみたよ。
HTTPリクエストでページを呼び出して、JavaScriptでデータをちょこっと加工して、Googleスプレッドシートに送るって流れ。
20ページくらいは順調にできたけど…
途中で気づいたんだ。メールアドレスは暗号化されてて、実際はほとんど使えないデータばかりだったって😭
「まじか〜」って感じで、一気にやる気が削がれたよ💦
次は有料サービス「Scraper API」にチャレンジ💳
次は「Scraper API」っていう便利そうな有料サービスを試してみた!
月49ドルで10万クレジットついて、これで余裕でいけるはず〜って期待したけど、甘かった😂
サイトがCloudflareっていうシールドで守られてて、1リクエストに40〜50秒もかかるし、
自動化も途中で勝手に止まるし、何度も手動で再起動しなきゃいけなくて大変すぎた。
しかもクレジットは一瞬で全部消えちゃって、追加買うのもどんどん高くなって…💸
「1回の仕事なのに何これ!?!」状態だったよ🥲
最終的にたどり着いたのは自作スクリプト👩💻✨
意気消沈しつつも、「もしかして自分で作ったほうがいいんじゃない?」って思い立って、初めてPuppeteerでスクレイピング用のコードを書いてみたの。
VS Codeを開いて、
- ページネーションを辿りながら全部のリンクをゲット
- 各ページからメール、電話番号、住所、ウェブサイトのURLを取得
- ローカルにデータ保存しながら自動でループ
これを2日間ノートパソコンでずっと動かし続けて、無事に36,000ページ全部スクレイピング完了!
「これ、なんで今までやらなかったんだろう?」って正直思ったよ😳
スクレイピングをするなら覚えておきたいポイント📝
- 短い作業なら有料ツールも便利だけど
- 大量のページを一気にスクレイピングすると、限度やエラーが多くて結構ストレスになる
- 最初は時間かかっても、自分でコードを書くと自由度が高くて安定することも多い
- 「お金で解決しよう」と思ったけど、自分でやったほうが結果的に早かったりすることもあるんだな~って学んだよ💡
ちなみに、48時間ずっと動かしてもパソコンが壊れなかったのは奇跡かも🤣
ちょっとだけ勇気出して自分でやってみるのもアリだよね🌸
コメント
ロバート
スクレイピングは詳しくないけど、住宅用IP使うのが成功のカギだったんじゃない? ブロックされにくいって聞くし。
サラ
スクレイピングは今も昔も面倒だよね。 広告バナー集めで100サイト回った時、iframeやcanvasタグがあって苦戦したなぁ。 canvasのスクショ方法知ってる人いる?
クリス
次はUlixee heroを試してみて。 もっとステルスで無料オープンソースだよ。
ベン
36,000ページのLinkedInプロフィールPDFはどこから手に入れたの?
ジャック
個人情報スクレイピングは倫理的にどうなの? 自分のメールは絶対取られたくないよ。
ハンナ
友達にこれ渡したらRedditで使われて、めっちゃ後悔したよ。
レオ
2000年頃、好きな候補者の街でデモツール使ってメール集めて500通ずつ宣伝メール送ってた。 返信も結構あって面白かったな。
エイダン
これくらいの作業、ノートPCには軽すぎて爆発しそうにないよ(笑)
ハンナ
ただの知能自慢でしょ、それ。
キンバリー
WindowsならAutoHotkeyがオススメ。 うちのチームの奴は150万件の文書スクレイピングに使ってたよ。 ただ、公開サイトのスクレイピングは色々注意が必要だけどね。
クリス
住宅用IPじゃなきゃダメだよ、VPSじゃ無理。 curl-impersonateっていうChromeやFirefoxの真似するツールもあるよ。 Node用のラッパーもある(自作だけどね)。
グレース
wgetで再帰的に10秒待ちながら落とすのもあり。
ベン
作ったスクリプトの詳しい話、聞かせてよ。
レオ
俺も同じ感じで地元のM4マシン3台使ってTikTokの約5万プロフィールと150万投稿を毎日スクレイピングしつつ、他のサービスも動かしてる。 今のPCはめちゃくちゃ強いし、クラウドは高くなりすぎてるよ。