Python -Anfragen werden mit Proxy - HTTPS -Schema zurückgegeben, das erwartete Ergebnis, aber der HTTP -Header zurücksetPython

Python-Programme
Anonymous
 Python -Anfragen werden mit Proxy - HTTPS -Schema zurückgegeben, das erwartete Ergebnis, aber der HTTP -Header zurückset

Post by Anonymous »

Beim Einstellen einer URL, um HTTPS als Schema (d. H. Https: //) zu verwenden, erhalte ich meine gewünschte Antwort (d. H. Seitenquelle), aber jede HTTP Ein Kopfball und ich verstehe nicht, warum, wenn ich eine Umleitung zur Seitenquelle erwarte. Dies ist wichtig, da manchmal die URLs, die ich veriere, http: // oder https: // und ich muss sie angemessen umleiten. und mit HTTPS-basierten Proxy. Das Ergebnis ist jedoch sowohl für HTTP- als auch für HTTPS -Proxies gleich. Die Stellvertreter sind öffentlich. < /P>

Code: Select all

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>
Versuch 1 Fehler < /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>
Die erste Zeile ist der Statuscode. Wir sehen 200 Antwort, aber die nächste Zeile zeigt keine Umleitungsgeschichte. Wenn ich in den Browser gehe, wird es automatisch zu https: // weitergeleitet. Ich verstehe, dass die Stapel unterschiedlich sind, aber was fehlt, zumal Anfragen umgeleitet werden sollen. Was mache ich mit diesem Header? Warum erhalte ich es? Ich könnte einfach manuell sicherstellen, dass jede URL in der Get -Anfrage https: // ist, aber ich würde nicht verstehen, warum dies ein [url=viewtopic.php?t=11587]Problem[/url] ist. Quelle (Ändern Sie die URL von HTTP auf https) und zeigt die verschiedenen Weiterleitungen < /p>
...
htmlRequest = requests.get("https://link.springer.com/10.1023/A:1012637309336",
...
Vielen Dank, freundlich und hoffentlich ist dies für andere hilfreich!

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post