При настройке любого 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",
...
Спасибо, любезно, и, надеюсь, это полезно для других!
При настройке любого URL -адреса для использования https в качестве схемы (то есть https: //) я получаю свой желаемый ответ (то есть источник страницы), но любой http url (то есть http: //) не удастся или я получаю Заголовок, и я не понимаю, почему, когда я ожидаю перенаправления на источник страницы. Это важно, потому что иногда URL -адреса, которые я обрабатываю, являются http: // или https: //, и мне нужно, чтобы они перенаправляли соответствующим образом. и использование прокси на основе HTTPS. Тем не менее, результат одинаково для прокси HTTP и HTTPS. Прокси общедоступны. < /P> [code]import requests from bs4 import BeautifulSoup from fake_useragent import UserAgent
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)
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", ... [/code] Спасибо, любезно, и, надеюсь, это полезно для других!
При настройке любого URL -адреса для использования https в качестве схемы (то есть https: //) я получаю свой желаемый ответ (то есть источник страницы), но любой http url (то есть http: //) не удастся или я получаю Заголовок, и я не понимаю, почему,...
Я пытался нажать на URL -адрес HTTPS для Google API.
Использование кода ниже, но он дал некоторые ошибки.
Но я могу нажать один URL Google API HTTP, и он очень хорошо работает без какой -либо ошибки
Я работаю над получением данных API в среде, где требуется исходящий прокси-сервер HTTP/HTTPS. При подключении к сайту по HTTPS через прокси с использованием Tunneling все работает нормально. Вот пример кода:
import http.client
Когда я пытаюсь использовать Swagger на своем локальном хосте, приложение работает правильно (API работает), но я выполнил развертывание на железной дороге, и когда я пытаюсь протестировать API с помощью Swagger, я получаю эту ошибку:Не удалось...