Why it doesn't work?

作業のメモ、記録をブログに残しています。

Python requests.getで403

requests.getを実行するとステータスコードに403が設定されていました。

import requests

url = 'https://www.xyz.com'
res = requests.get(url)
print(res.status_code)

# python test.py
403

403はサーバーからの認証が拒否されたことを示しています。正常であれば200が設定されます。
developer.mozilla.org
いろいろ調べてみると、ユーザエージェントの問題らしいです。
stackoverflow.com
ということで、ユーザエージェントをChrome に設定して再度実行してみました。

import requests

url = 'https://www.xyz.com'
headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36'}
res = requests.get(url, headers=headers)
print(res.status_code)

これを実行すると。。。

# python test.py
200

こんどは期待通り、200がステータスコードに設定されています。
ユーザエージェントについてはこちらをご確認下さい。
developer.mozilla.org
今日はここまで。