
Une formation pratique sur l'utilisation de PySpider pour accrocher des proxies.
Quelle est la plus grande crainte des robots d'indexation ? Le blocage de l'IP est sans aucun doute dans le top trois ! Aujourd'hui, nous allons parler de la façon de mettre un gilet sur un crawler dans PySpider - en utilisant un proxy IP pour le garder en sécurité. Ne vous laissez pas intimider par ces tutoriels compliqués, en fait, la configuration du proxy est plus simple que de faire cuire des nouilles.
Pourquoi dois-je utiliser une adresse IP proxy ?
Pour donner un exemple : vous allez au supermarché tous les jours pour profiter du prix spécial des œufs, trois jours consécutifs vous portez la même robe rouge, le quatrième jour les gardes de sécurité vous arrêtent directement à l'extérieur de l'enfant. L'IP proxy est une armoire à vêtements pour le crawler, chaque fois que vous sortez et que vous changez de vêtements. Avec le proxy d'ipipgo, c'est comme si vous louiez directement un magasin de vêtements, avec des "vêtements" provenant de plus de 200 pays dans le monde entier.
Configuration du proxy en trois étapes
Importer d'abord la boîte à outils nécessaire
from pyspider.libs.base_handler import
classe MyCrawler(BaseHandler).
crawl_config = {
'proxy' : 'http://username:password@proxy_ip:port', voici l'adresse du proxy fournie par ipipgo
headers' : {
User-Agent' : 'Mozilla/5.0 (Windows NT 10.0 ; Win64 ; x64)'
}
}
@every(minutes=2460)
def on_start(self).
self.crawl('http://目标网站.com', callback=self.index_page)
Faits marquants :Lorsque l'adresse proxy est obtenue dans le backend ipipgo, n'oubliez pas de sélectionner le format de protocole HTTP/HTTPS. Il est recommandé d'utiliser l'IP résidentielle dynamiquePackage Dynamic Residential (Standard)Le prix de 7,67 $/GB est particulièrement intéressant pour les débutants.
Astuce de commutation automatique de l'IP dynamique
J'aimerais mettre en œuvre le changement automatique d'IP par demande, en utilisant l'interface API d'ipipgo à saisir et à utiliser :
import random
def get_proxy().
Ici, nous appelons l'interface API d'ipipgo
proxy_list = ["ip1:port", "ip2:port", "ip3:port"]
return random.choice(proxy_list)
classe AutoProxyHandler(BaseHandler).
class AutoProxyHandler(BaseHandler) : def make_request(self, url, callback) : return Request(url, callback).
return Request(url, callback
callback=callback, proxy=get_proxy())
proxy=get_proxy()) Chargé automatiquement pour chaque requête.
Guide pour éviter la fosse (session AQ)
Q : Que dois-je faire si l'agent tombe soudainement en panne ?
R : Le client ipipgo est doté d'un système de détection des battements de cœur, il constate que l'IP est suspendue et coupe automatiquement la nouvelle IP, le téléphone portable se connectant automatiquement au réseau WiFi pour une raison précise.
Q : Comment puis-je vérifier que le proxy fonctionne ?
R : Ajoutez une étape de test au crawler :
self.crawl('http://httpbin.org/ip', callback=self.check_ip)
def check_ip(self, response) : print(response.text)
print(response.text) L'IP affichée ici devrait être une IP proxy.
Comment choisir un paquet sans marcher sur la mine ?
| Type d'entreprise | Paquets recommandés | Scénarios applicables |
|---|---|---|
| Acquisition de données à haute fréquence | Maisons statiques | 35/IP peut être utilisé pendant un mois entier, ce qui convient à la surveillance à long terme. |
| Crawler d'entreprise | Dynamic Residential (Entreprise) | 9,47/GB avec le canal VIP, obtenez des données plus rapidement ! |
| Petits projets individuels | Dynamique résidentielle (standard) | 7,67 Prix du chou, premier choix pour la pratique |
Enfin, ne perdez pas votre temps avec des proxys gratuits, je les ai testés auparavant, et 8 proxys gratuits sur 10 sont mauvais. La ligne TK d'ipipgo a une latence mesurée de moins de 200 ms, ce qui est presque aussi rapide que le réseau local. Leur service clientèle peut également fournir des solutions personnalisées, la dernière fois un frère pour escalader les données de commerce électronique de l'Asie du Sud-Est, directement avec une ligne transfrontalière.

