Я кодирую небольшой фрагмент, чтобы извлекать данные с веб-страницы, и я в настоящее время находится за прокси-сервером HTTP/HTTPS. Запросы создаются следующим образом:Запросы HTTPS отправляются без заголовков с запросами Python
headers = {'Proxy-Connection': 'Keep-Alive',
'Connection':None,
'User-Agent':'curl/1.2.3',
}
r = requests.get("https://www.google.es", headers=headers, proxies=proxyDict)
На первом, ни HTTP, ни HTTPS работал, а прокси вернулся 403 после запроса. Было также странно, что я мог делать HTTP/HTTPS-запросы с curl
, получая пакеты с apt-get
или просматривая веб-страницы. Посмотрев на Wireshark, я заметил некоторые отличия между запросом curl
и запросом. После установки User-Agent
на фальшивую версию curl
прокси мгновенно позволяет мне делать HTTP-запросы, поэтому я предположил, что прокси-фильтр запрашивает User-Agent
.
Итак, теперь я знаю, почему мой код выходит из строя, и я могу выполнять HTTP-запросы, но код продолжает работать с HTTPS. Я устанавливаю заголовки так же, как и для HTTP, но после просмотра Wireshark в сообщении CONNECT не отправляются заголовки, поэтому прокси-сервер не видит User-Agent
и возвращает ответ ACCESS DENIED.
Я думаю, что если бы я мог отправлять заголовки с сообщением CONNECT, я мог бы легко выполнять HTTPS-запросы, но я ломаю голову о том, как сообщить запросам, что я хочу отправить эти заголовки.