前提・実現したいこと
何が要因か知りたい
エラーメッセージ
<Response [403]>
該当のソースコード
headers={'Connection': 'keep-alive',
'Accept-Encoding': 'gzip, deflate',
'Accept': '/',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'
}
requests.get('https://www.mercari.com/jp/', headers=headers)
試したこと
ローカルPC(windows)のanaconda Qt Console から上記リクエストをかけると<Response [200]>で通ります
しかしながら、リモートのサーバーから上記コードを実行すると<Response [403]>で返ってきます
ちなみにPython自体はあまり関係なくPHPでも似たようなコードを書いてみましたが、リモートでは403
ローカルPCのコマンドラインからcurlを叩いてみたところ、きっちりレスポンスが返ってきますが、リモートからのcurlは403で弾かれます
試したリモートサーバーがAWSオハイオリージョンのLinuxからだったのでIPやLocation?の様なもので弾かれているのかと思い、
国内で借りている別のサーバーで同じコードを実行、curlも試してみましたが403
torブラウザを使ってIPを海外のものに変えてみてもブラウザ越しであれば問題なく表示されます。
かといってAWSのリモートからselenium & Chromeのヘッドレスでアクセスを試みるも403・・・
httpリクエストに関して、それほど深い造詣もないため、何が原因で弾かれているのか皆目見当もつかず、
お知恵を拝借したく投稿させていただきました。
補足情報(FW/ツールのバージョンなど)
全て200で通った:
ローカルで試した環境はwin10の標準コマンドプロンプトからのcurl、Anaconda Qtからの上記pythonスクリプト
全て403で通らず:
リモート/AWSのオハイオ/Cloud9からの上記pythonスクリプトと別途作成のPHP、Linux bashからのcurlコマンド
リモート/coreserver(国内)のLinuxから上記pythonスクリプト curl
ちなみにローカルではUAだけ偽装すれば200が返ってきます。UA付加なしだと403。

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/25 12:38
退会済みユーザー
2019/02/25 12:43
退会済みユーザー
2019/02/25 12:52