Amazonはスクレイピング対策をしているらしい

Amazon ロゴ
「APIが使えないなら商品ページをスクレイピングすれば良いじゃない」と思ってやってみたけど上手く動きませんでした。なんでなんかなと思っていたんですが、どうやらAmazonってスクレイピング対策をしてるんですね。そうだったのか。



解決策はどうやらSelenium

Seleniumというのはサーバ上で動くブラウザエミュレーター、という感じでしょうか。通常はWebサイトやサービスのテストのために使用しますが、これを使えば通常のブラウザからアクセスしているように装うことができ、スクレイピング対策を回避出来るそうです。


Amazonがスクレイピング対策をしてきました。
しかし、もう攻略しました。
攻略と言っても、そんなに大袈裟なモノではありません。

Amazonのスクレイピング対策を攻略する【Selenium最強説】 | ジコログ



実際に出来るかどうか未知数

懸念事項としては、AWSからスクレイピングすると503が返ってきて失敗する一方で、ローカル(固定IP)からスクレイピングすると成功するんですよね。プログラム構成は同じだからユーザーエージェントに違いはないと思うし、違うのはIPアドレスぐらい?もしIPアドレスがブロック対象になってしまっていたら、どんなソフトを使っても無理です。ただそんな凶悪なクローリングはしてないはずなんだよなあ。

ただ技術的には可能ですし試してみる価値はあるかなと思います。動作環境を整えるのはこのあたりを参考に。

Amazon Linux2でSelenium環境を最短で構築する – Qiita
Laradockでの環境構築からSeleniumでお手軽スクレイピング – Qiita



といっている間にAPIが復活しました

どなたかがアフィリエイトリンクを通して買いものをしてくれたおかげでAPIが復活しました。ありがとうございます。ほんとありがたい。ただまあこのブログのことなので、来月にはまた停止するかも。その時にはSeleniumによるスクレイピングを試してみるかも知れません。