Requests.get ne fonctionne pas avec mes adresses proxies

Résolu
Utilisateur anonyme -  
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   - 25 juin 2020 à 14:02
bonjour,

je cherche a savoir si certaines adresse proxy sont fonctionnel ou non en exécutant une requête "get" vers un site qui me retourne mon adresse IP si tout ce passe correctement. malheureusement cela ne ce passe pas comme prévue et l’ensemble de mes proxy sont considéré comme mort méme si certain d'entre eux sont fonctionnel.

def tester(proxies, ip, ref_IPs):
    whitelist = []
    proxy_pool = cycle(proxies)

    for i in range(1, len(proxies)):
        proxy = next(proxy_pool)
        print("                          ", end="\r")
        print("- please wait ", len(proxies)-i, end="\r")
        try:
            rep = requests.get("http://ifconfig.me/ip", proxies={"http": proxy, "https": proxy}, timeout=1, allow_redirects=False)
            if rep.text == ip:
                whitelist.append(ref_IPs[i])
        except:
            pass

    fileCreator(cleaner(whitelist, 1))



la requête fonctionne sans l'argument proxies et les proxies fournie peuvent etre de type http/https ou socks4/socks5.
ils sont formaté de cette manière :
http : http://36.89.194.113:38622
https: https://http:36.89.194.113:38622
socks4: socks4://181.106.229.155:1080
socks5: socks5://181.106.229.155:1080


avez vous une idée de comment corriger cela ? Merci.
A voir également:

2 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour, as-tu essayé de faire d'abord un code plus simple, pour vérifier que tu utilises correctement requests.get?
0
Utilisateur anonyme
 
Oui bien sur.
Ne serais-ce que pour obtenir l'argument IP de ma fonction :

def areyouconnected():
    try:
        rep = requests.get("http://ifconfig.me/ip")
        if rep:
            print("[",  rep.text, "] -> The program has started")
            return rep.text
        else:
            print("You don't seem to be connected to the internet.")
            return 1
    except:
        return 1


le soucis provient réelement de l'argument "proxies" de requests.get. tout le reste me semble correct
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Utilisateur anonyme
 
bien sûr. peux-tu spécifier explicitement la valeur de l'argument proxies, sans passer par le paramètre proxies, cycle et next?

exemple:
import requests

proxies = {
 “http”: “http://10.10.10.10:8000”,
 “https”: “http://10.10.10.10:8000”,
}
r = requests.get(“http://toscrape.com”, proxies=proxies)
0
Utilisateur anonyme > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
Oui, je viens de refaire le test mais toujours pas de changement :

def tester(proxies, ip, ref_IPs):
    whitelist = []
    proxy_pool = cycle(proxies)

    for i in range(1, len(proxies)):
        proxy = next(proxy_pool)
        print("                          ", end="\r")
        print("- please wait ", len(proxies)-i, end="\r")
        try:
            rep = requests.get("http://ifconfig.me/ip", proxies={"http": "http://10.10.10.10:8000", "https": "http://10.10.10.10:8000"}, timeout=1, allow_redirects=False)
            if rep.text == ip:
                print("passe")
                whitelist.append(ref_IPs[i])
        except:
            pass

    fileCreator(cleaner(whitelist, 1))


un timeout plus long peut il aider ?
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Utilisateur anonyme
 
peut-être en adaptant l'exemple à ta situation?
0
Utilisateur anonyme
 
probléme resolut, une bête erreur de ma part.

if rep.text == ip:
                print("passe")
                whitelist.append(ref_IPs[i])


L’IP obtenue sous couver d'un proxy n'est pas la même que celle de ma machine actuel .

if rep.status_code == 200:
                print("passe")
                whitelist.append(ref_IPs[i])
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
la prochaine fois, fais print(rep) ou de rep.text.
0