Запросы Python Get с прокси - HTTPS -схема возвращает ожидаемый результат, но HTTP возвращает заголовокPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Запросы Python Get с прокси - HTTPS -схема возвращает ожидаемый результат, но HTTP возвращает заголовок

Сообщение Anonymous »

При настройке любого URL -адреса для использования https в качестве схемы (то есть https: //) я получаю свой желаемый ответ (то есть источник страницы), но любой http url (то есть http: //) не удастся или я получаю Заголовок, и я не понимаю, почему, когда я ожидаю перенаправления на источник страницы. Это важно, потому что иногда URL -адреса, которые я обрабатываю, являются http: // или https: //, и мне нужно, чтобы они перенаправляли соответствующим образом. и использование прокси на основе HTTPS. Тем не менее, результат одинаково для прокси HTTP и HTTPS. Прокси общедоступны. < /P>

Код: Выделить всё

import requests
from bs4 import BeautifulSoup
from fake_useragent import UserAgent

ua = UserAgent(browsers=['Edge', 'Chrome', 'Firefox', 'Google'], os='Windows', platforms='desktop')
headers = {
'Accept': 'application/json',
'User-Agent': ua.random, # generic user agent
'Accept-Language': 'en-GB,en-US;q=0.9,en;q=0.8',
'Connection': 'keep-alive',
}

htmlRequest = requests.get("http://link.springer.com/10.1023/A:1012637309336", # Another example link that presents the same behavior - https://ieeexplore.ieee.org/document/10152818/
headers=headers,
verify=False, # verify is necessary for https proxy, or I'll receive an "Cannot set verify_mode to CERT_NONE when check_hostname is enabled" error. Either solution works, but not the focus.
#verify="springer-com-chain.pem", # verify is necessary for https proxy, or I'll receive an "Cannot set verify_mode to CERT_NONE when check_hostname is enabled" error. Either solution works, but not the focus. This file is downloaded directly from the link in the get request above.
allow_redirects=True,
#proxies={"http": "http://3.21.101.158:3128"},
proxies={"http": "https://204.236.176.61:3128"},
timeout=30)

print(f"Status Code: {htmlRequest.status_code}")
print(f"URL History: {htmlRequest.history}\n")
soup = BeautifulSoup(htmlRequest.content, 'html.parser')
print(soup.prettify())
< /code>
Попытка #1 Ошибка < /p>
Status Code: 200
URL History: []

REMOTE_ADDR = 13.56.247.133
REMOTE_PORT = 56719
REQUEST_METHOD = GET
REQUEST_URI = http://link.springer.com/10.1023/A:1012637309336
REQUEST_TIME_FLOAT = 1739322382.2113674
REQUEST_TIME = 1739322382
HTTP_HOST = link.springer.com
HTTP_USER-AGENT = Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36
HTTP_ACCEPT-ENCODING = gzip, deflate
HTTP_ACCEPT = application/json
HTTP_CONNECTION = keep-alive
HTTP_ACCEPT-LANGUAGE = en-GB,en-US;q=0.9,en;q=0.8
< /code>
Первая строка - код состояния. Мы видим 200 ответа, но следующая строка не показывает историю перенаправления. Если я пойду в браузер, он автоматически перенаправляется на https: //. Я понимаю, что стеки разные, но то, чего не хватает, тем более что предполагаются запросы обработать перенаправления. Что мне делать с этим заголовком? Почему я это получаю? Я мог бы просто вручную убедиться, что каждый URL в запросе GET - https: //, но я бы не понял, почему это проблема. 
Попытка № 2 работает и возвращает страницу Источник (измените URL с HTTP на HTTPS) и показывает различные перенаправления < /p>
...
htmlRequest = requests.get("https://link.springer.com/10.1023/A:1012637309336",
...
Спасибо, любезно, и, надеюсь, это полезно для других!

Подробнее здесь: https://stackoverflow.com/questions/794 ... but-http-r
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»