Request mit Proxies geht nicht!!?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
susepct3
User
Beiträge: 1
Registriert: Donnerstag 16. Februar 2023, 13:16

Hallo! Ich habe folgenden code :

Code: Alles auswählen

import requests, json, random

with open("config/proxies.txt", "r") as generator:
     Proxies = []
     Proxies += [proxy.strip() for proxy in generator.readlines()]    
while True:
    Proxy_Payload = {
         "http": 'http://%s' % random.choice(Proxies)
    }
    s = requests.Session()
    s.proxies = Proxy_Payload
    r = s.get("https://api.ipify.org/?format=json", proxies=Proxy_Payload)
    print(r.text)
[/code]

https://api.ipify.org/?format=json Zeigt die Ip an, mit der ich die Website anfrage.

Aber nun habe ich das Problem, dass ich immer meine eigene Ip zurück bekomme und nicht die Ip von den proxies, wie es eigentlich sein sollte.

Die Proxies sind von https://proxyscrape.com/, also kostenlos, aber ich habe sie mit einem proxie -checker gecheckt.

Wie kann ich das beheben???
imonbln
User
Beiträge: 191
Registriert: Freitag 3. Dezember 2021, 17:07

Du sagst, du willst ein Proxy für das Protokoll http baust aber eine https Verbindung auf! Da wird kein Proxy verwendet.

Generell, Variablen schreibt man in Python klein. Die Session solltest du als Kontextmanager schreiben, am besten außerhalb der while True schleife. Variablen mit nur einem Buchstaben sind schwer zu warten und sollten durch sprechende Namen ersetzt werden. Das Deklarieren von Proxys in einer Zeile und das Zufügen der Proxys in der nächsten Zeile kannst du zusammen fassen.
Das Setzen des Proxys einmal in der Session global und dann in jeden get Request ist überflüssig, eins von Beiden reicht.

Code: Alles auswählen

import requests

with open("config/proxies.txt", "r") as generator:
     proxies = [proxy.strip() for proxy in generator.readlines()]

with requests.Session() as session:
    while True:
        proxy_payload = { 
             "https": 'http://%s' % random.choice(proxies)
        }   
        session.proxies = proxy_payload
        response = session.get("https://api.ipify.org/?format=json")
        print(response.text)
Antworten