Простой запрос get / post заблокирован в Python 3, но не в Python 2

Я работаю над простым веб-шабером в Python 3, но когда я отправляю запрос get или post, ответом является 403. В Python 2 все работает нормально. Я использую одну и ту же версию библиотек запросов в обеих версиях. Я также пытался с Verify=False/True, но разница в обеих версиях остается.

запросов = 2.22.0

certifi = 2019.9.11

from requests import get
url = 'https://www.gamestop.com/'
header = {
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'Accept-Encoding': 'gzip, deflate, br',
    'Accept-Language': 'en-US,en;q=0.5',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:56.0) Gecko/20100101 Firefox/56.0',
    'DNT': '1',
    'Upgrade-Insecure-Requests': '1',
    'Connection': 'keep-alive',
    'Host': 'www.gamestop.com'
}
res = get(url, headers=header, verify=False).status_code
print(res)
# 403 when using python 3.7.4
# 200 when using python 2.7.16

Редактировать @blhsing:

Список ниже отслеживает из которых конкретные версии Python работают и какие версии терпят неудачу в соответствии с комментариями. До сих пор успехи и неудачи были согласованы для каждой конкретной версии Python на разных платформах.

Не стесняйтесь редактировать этот раздел вопроса со своими собственными результатами вместе с конкретными версиями Python, используемыми для получения результатов.

2.7.14 works (blhsing)
2.7.16 works (repl.it)
3.6.5 works (blhsing)
3.6.8 fails (Reinderien and blhsing)
3.7.3 works (wim and blhsing)
3.7.4 fails (repl.it and blhsing)
3.8.0 fails (OP)

Демонстрация по repl.it: Python 2.7.16 и Python 3.7.4

19
задан Media Mindz 16 October 2019 в 13:22
поделиться