発生している問題
クローラーのプログラム自体は出来ていて、ローカルでは動くのですが本番環境になると「403 forbidden エラー」が発生してしまいます。
ユーザーエージェントの指定やheaderの指定などをしたり、seleniumでクローラーを作り直して実行したりもしましたが、何を試しても403エラーが発生しています。
該当のソースコード
一部、抜粋したプログラムです
これをrails taskで実行しています。
namespace :mercari_bot do task :iphone => :environment do agent = Mechanize.new agent.user_agent = "Mozilla/5.0" agent.request_headers = { "Accept-Encoding" => "deflate", "content-type"=>"text/html;charset=UTF-8" } page = agent.get("https://www.mercari.com/jp/search/?keyword=iphone") elements = page.search(".items-box") elements.each do |element| puts element.at("h3.items-box-name").text end end end
もしくは、手早くエラーを再現する方法として、ローカルでheaderを指定せずにcurlで上記のメルカリのurlを叩くと同じ現象が発生します。
エラーが発生していると思われる原因
メルカリで使われている、varnish serverというのが原因だと思います。
ただ、ローカルでは問題なく動くのに本番だとcurlを含め何をしても403エラーが発生するので、行き詰まってます。
お手数お掛けするのですが、何かこの問題の解決方法がわかる方がいましたら、知見を共有していただければと思います。
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー