Разница в статусе одного и того же запроса над tor в python3.6 и python3.7 - PullRequest
1 голос
/ 08 октября 2019

У меня есть запрос к tor, который раньше работал в python3.6. Я переключился на python3.7, и теперь я получаю статус ответа 403.

Ниже приведен способ репликации проблемы со средами и запросами conda:

В python3.6:

conda create -n python3.6 python=3.6.5
conda activate python3.6
conda install requests
conda install ipython[all]
ipython
import requests
session = requests.session()
session.proxies = {}
session.proxies['http'] = 'socks5h://localhost:9050'
session.proxies['https'] = 'socks5h://localhost:9050'
url='https://dubicars.com'
session.get(url, headers={'User-Agent': "Mozilla/5.0 (Windows NT 6.1; rv:10.0) Gecko/20100101 Firefox/10.0"})

Возврат: <Response [200]>

В python3.7:

conda create -n python3.7
conda activate python3.7
conda install requests
conda install ipython[all]
ipython
import requests
session = requests.session()
session.proxies = {}
session.proxies['http'] = 'socks5h://localhost:9050'
session.proxies['https'] = 'socks5h://localhost:9050'
url='https://dubicars.com'
session.get(url, headers={'User-Agent': "Mozilla/5.0 (Windows NT 6.1; rv:10.0) Gecko/20100101 Firefox/10.0"})

Возврат: <Response [403]>

Оба должны приводить к одному и тому же ответу (в случае успехабез таймаутов и прерываний), но я получаю 200 в первом и 403 во втором. Любые объяснения и обходные пути?

Это также происходит с несколькими другими сайтами.

Различия в пакетах каждой среды Я вижу только 3 различия версий, одно из которых, очевидно, python:

cryptography              2.3.1
openssl                   1.0.2t
python                    3.6.5
cryptography              2.7
openssl                   1.1.1d
python                    3.7.4

Редактировать: Я понизил openssl до 1.0.2t, он снизил криптографию до той же версии, что и python 3.6.5 выше, и понизил python до 3.7.0, а обновление python будет обновлено по openssl и криптографии. С понижением версии Python 3.7 запрос работал нормально.

Я полагаю, что проблема из openssl, так что это предполагаемое поведение? Должен ли я настроить запрос по-другому?

...