こんにちは!私は、現場の課題解決を専門とするアプリ開発コンサルタントのYOHEY@佐賀です。これまで、工場やオフィスで実際に働く方々とともに、現場の声を反映したシステム開発を数多く手掛けてきました。
ここでは、ココナラ初受注を目指す私が、日々考え、実行した試行錯誤の記録を残していこうと思います。同じようなことを目指す人の参考になれば幸いです。
今回は、AliExpressで商品情報を大量取得する際に直面する大きな壁、Captcha(ロボット検証)の回避について検証した結果をシェアします。
Webスクレイピングをする際、Captchaは避けられない課題。特にAliExpressのような大手サイトでは、IPアドレスやアクセスパターンをもとにロボットとして検知されるとすぐにブロックされます。では、Captchaを回避する方法はどのようなものがあるのでしょうか?今回の検証を通して見えてきたことをご紹介します!
◆検証結果まとめ:
①Captcha回避にはIPアドレスの変更が最も有効だということ。
②フィンガープリントの偽装やアクセススピード調整だけでは効果が薄いことも明らかになりました。
◆今回試したCaptcha回避方法
1.フィンガープリント情報の偽装
ユーザーエージェントやブラウザの指紋情報を偽装して「人間らしいブラウザ」を装う方法を試しました。
これには以下のようなライブラリや設定を利用しました:
・selenium-stealth
・HTTPヘッダーの多様化(リクエストヘッダーのランダム化)
結果は……失敗。
数回のリクエストまでは成功しましたが、短時間でCaptchaが発生しました。
ブラウザ操作のフィンガープリントだけでは、人間らしさを再現しきれないことが分かりました。
2. アクセス間隔や操作スピードを人間っぽく調整
次に試したのは、以下のような「人間らしい操作」を模倣する方法です:
・アクセスごとにランダムな間隔を設定(1~3秒)
・1画面ずつのスクロール動作を実装
これも効果は限定的でした。数十件のデータを取得したあたりで再びCaptchaに阻まれる結果に。
AliExpressのCaptchaはIPアドレスやセッション情報も参照している可能性が高く、「操作だけ」では突破できないことが分かりました。
3. IPアドレスのロンダリング
最後に試したのが、IPアドレスのロンダリング。
VPNやプロキシサービスを利用して定期的にIPアドレスを変更し、サイト側に異なる接続元からアクセスしているように見せる方法です。
・サービス例: Proxy-Cheap, Smartproxy
・月額料金: 約3000円~
結果として、IPアドレスを変更するとCaptchaを回避できることが確認できました。
ただし、プロキシサービスの料金がネック。月額3000円以上が必要となるため、手軽とは言い難いです。
◆結論(再掲)
・「IPアドレスの変更」をできるだけ「安く」取り入れたい。
◆次なる挑戦: モバイルデザリングでのIPロンダリング
VPNやプロキシを使う代わりに、モバイルデザリングを利用してIPアドレスを変更する方法を検討中です。
モバイルデザリングでは、接続のたびに動的IPアドレスが割り当てられるため、VPNに頼らず無料でIPロンダリングを実現できる可能性があります。
今後は、デザリングとPythonを組み合わせてIP変更を自動化する方法を試していきます!
結果が出たらまた報告しますので、ぜひお楽しみに!
+++
いかがでしたか?Captcha回避は一筋縄ではいきませんが、新しい発見やアイデアも見えてきました。次のステップでの挑戦もぜひ見守っていただけると嬉しいです!