
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
先导入必备工具包
from pyspider.libs.base_handler import
class MyCrawler(BaseHandler):
crawl_config = {
'proxy': 'http://username:password@proxy_ip:port', 这里填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():
这里调用ipipgo的API接口
proxy_list = ["ip1:port","ip2:port","ip3:port"]
return random.choice(proxy_list)
class Handler(BaseHandler):
def make_request(self, url, callback):
return Request(url,
callback=callback,
proxy=get_proxy()) 每次请求自动换装
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) 这里显示的IP应该变成代理IP
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 |
最后叨叨句:别在免费代理上浪费时间,之前我测试过,10个免费代理有8个是坏的。ipipgo的TK专线实测不到200ms,跟本地网络差不多快。他们客服还能给定制方案,上次有个兄弟要爬东南亚电商数据,直接给配了跨境专线。

