
Utilisation de Python pour construire un serveur proxy
Récemment, de nombreux amis ont demandé comment construire un serveur proxy à utiliser, en particulier pour faire la collecte de données, la gestion multi-comptes de ces entreprises. Aujourd'hui, nous allons utiliser Python pour obtenir un serveur proxy.simple et pratiquedes proxys HTTP, en se concentrant sur la façon de les utiliser en conjonction avec les IP proxy premium d'ipipgo.
Préparez vos affaires.
Assurez-vous d'abord que votre ordinateur est équipé de Python 3.6 ou d'une version plus récente. Vous devez installer une bibliothèque tierce appeléeproxy.pyCe truc est spécialement conçu pour perturber les services de proxy. Il suffit de le lancer en ligne de commande :
pip install proxy.py
Si l'installation se bloque, essayez d'ajouter-i https://pypi.tuna.tsinghua.edu.cn/simpleChanger les sources domestiques. J'ai un conseil à donner, n'oubliez pas de mettre à jour la dernière version après l'installation, certaines versions plus anciennes ont des bugs bizarres.
Construction de l'agent du modèle de base
Un nouveau.basic_proxy.pyécrivez ces codes ci-dessous :
from proxy import Proxy
def main() : proxy = Proxy(port=8866)
proxy = Proxy(port=8866)
proxy.start()
si __name__ == '__main__'.
main()
Après l'avoir lancé, votre serveur proxy se trouve dans le répertoirePort 8866Course à pied. Renseignez les paramètres de votre navigateur lorsque vous l'utilisez127.0.0.1:8866Cela fonctionnera. Mais cette version dépouillée pose deux problèmes : premièrement, elle utilise l'IP locale et, deuxièmement, il est facile de la voler sans authentification.
Version avancée : IP dynamique + authentification
C'est le moment de faire ressortir lesServices proxy pour ipipgoJe ne suis pas sûr que vous puissiez le faire. Allez d'abord sur leur site web et obtenez une clé API, la version d'essai gratuite est suffisante pour tester. Réécrivez le code :
import requêtes
from proxy import Proxy, ProxyHandler
classe CustomHandler(ProxyHandler).
def get_upstream_proxy(self).
Obtenir une nouvelle IP pour chaque requête
ip_data = requests.get(
"https://api.ipipgo.com/get-proxy",
params={"type" : "http", "count" : 1}
).json()
return (ip_data['ip'], ip_data['port'])
def handle_request(self, data).
Ajouter une authentification simple
if b'Secret-Key : mypassword' not in data : return self.client.
return self.client.send(b'HTTP/1.1 403 Forbiddenrr')
Proxy(port=8866, handler=CustomHandler).start()
Cette version comporte trois points forts :
1. chaque demande change automatiquement l'IP d'ipipgo, pas de crainte d'être bloqué !
2. doit être utilisé avec un en-tête de clé spécifié.
3. passer par la grande réserve de proxies d'ipipgo, qui dissimule l'IP réelle de manière plus approfondie
Paramètres de configuration en situation réelle
Cette table de configuration est recommandée pour les réglages :
| paramètres | valeur recommandée | instructions |
|---|---|---|
| délai d'attente | 15 secondes. | Trop court pour être tué par erreur. |
| concurrence | 50 | Adaptation de la configuration du serveur |
| Stratégie de remplacement de la propriété intellectuelle | Par nombre de demandes | Changement d'IP toutes les 20 demandes |
| Niveau d'enregistrement | avertissement | Économiser de l'espace disque |
Un guide des pièges les plus courants
Q : Que dois-je faire si je ne peux pas me connecter à l'agent en permanence ?
R : Vérifiez d'abord si le pare-feu dispose d'un port de libération, puis essayez la commande curl.curl -x http://localhost:8866 http://ip.ipipgo.com/ipVérifier si l'adresse IP renvoyée est celle de ipipgo.
Q : Qu'en est-il du ralentissement soudain ?
R : Il peut s'agir d'un problème de réseau local ou d'une charge élevée du nœud IP sélectionné. Il est recommandé d'ajouter un mécanisme de notation des IP dans le code afin d'éliminer automatiquement les nœuds lents.
Q : Comment empêcher les gens de voler ?
R : Outre l'authentification par clé dans le code, il est préférable de configurer le pare-feu du serveur de manière à n'autoriser que les IP spécifiées à accéder au port proxy.
Pourquoi ipipgo ?
Maintenir un pool d'IP par soi-même est trop de travail, acheter un serveur, faire des vérifications, s'occuper des bannissements... toutes ces choses ennuyeuses, ipipgo les a prises en charge pour vous. Le test réel de leurs trois avantages à domicile :
– couverture complèteLes services d'urgence : plus de 300 itinéraires urbains dans tout le pays
– réactifDélai moyen <80ms
– riche en protocolesSupport complet : HTTP/HTTPS/Socks5
En particulier si vous effectuez une collecte de données à long terme, il est recommandé de se rendre directement sur leur site web.IP résidentielle dynamiqueIl simule le comportement réel de l'utilisateur, qui n'est pas facile à identifier. Les nouveaux utilisateurs s'inscrivent pour bénéficier d'un essai de trafic 2G, ce qui est suffisant pour mesurer l'effet.
Quelques mots pour conclure.
La construction d'un serveur proxy n'est pas difficile à dire, mais pour un fonctionnement stable à long terme, il faut aussi y prêter attention :
1. mise à jour périodique des clés d'authentification
2. contrôle de l'utilisation de l'IP
3. mise en place d'alertes routières
4. réactivation des services pendant la période de faible affluence du matin
Si vous n'y arrivez vraiment pas, ipipgo dispose d'une API proxy prête à l'emploi que vous pouvez appeler directement pour vous épargner la tâche de la maintenir. Cependant, si vous jouez seul, vous ne devriez pas avoir de gros problèmes d'après le tutoriel ci-dessus. Vous pouvez vous rendre sur le site officiel pour obtenir une assistance en ligne.

