
Pratique avec pyspider pour accrocher des proxies
Les frères Crawler comprennent qu'aucun proxy IP n'est comme courir nu sur l'Internet, les minutes par le site cible pour tirer le noir. Aujourd'hui, nous ne parlons pas de faux, directement sur les produits secs pour vous enseigner comment configurer le proxy dans le pyspider, en se concentrant sur la façon d'utiliser le service de proxy d'ipipgo pour maintenir la paix.
Pourquoi mettre un gilet à un reptile ?
Pour donner un exemple, vous allez au kiosque tous les jours pour acheter des cigarettes, le patron, en voyant votre visage familier, vous soupçonne d'être un revendeur d'occasion. L'IP proxy consiste à donner au crawler la possibilité de changer de gilet, de sorte que le site web pense que chaque visite est une personne différente. En particulier lorsque vous effectuez une collecte de données à grande échelle, si vous n'avez pas de proxy, l'IP sera bloquée, ou l'ensemble du projet sera paralysé.
Trois étapes pour la configuration du proxy pyspider
L'ajout de proxies aux scripts de crawler de pyspider est en fait assez simple, il s'agit de trouver le bon endroit. Souvenez-vous de l'emplacement principal :Le paramètre fetch_type de la méthode self.drawl().
import pyspider
from pyspider.libs.base_handler import
classe MySpider(BaseHandler).
def on_start(self).
self.crawl('http://目标网站.com',
callback=self.index_page, fetch_type='js
callback=self.index_page, fetch_type='js', proxies={"http" :
proxies={"http" : "http://账号:密码@proxyIP:port",
"https" : "https://账号:密码@proxyIP:port"})
Deux nids-de-poule sont à surveiller :
- Si vous utilisez le protocole Socks5, vous devez installer le fichier
demandes[chaussettes]ce paquet - N'oubliez pas d'utiliser urllib.parse si le mot de passe contient des symboles spéciaux.
Compétences pratiques en matière de pool de procuration
Un seul proxy est facile à identifier, il est recommandé d'obtenir une rotation du pool de proxy. Utilisez l'interface d'extraction API d'ipipgo pour changer automatiquement un lot d'IP toutes les heures :
demandes d'importation
def get_proxies() : api_url = "
api_url = "https://ipipgo.com/api/get_proxy?type=动态住宅&count=50"
resp = requests.get(api_url).json()
return [f "http://{item['ip']}:{item['port']}" for item in resp['data']]
Chargement du pool d'agents lors de l'initialisation du crawler
classe MySpider(BaseHandler).
def __init__(self).
self.proxy_pool = get_proxies()
self.current_proxy = 0
def get_proxy(self).
proxy = self.proxy_pool[self.current_proxy % len(self.proxy_pool)]
self.current_proxy += 1
return {"http" : proxy, "https" : proxy.replace('http','https')}
Guide pour éviter la fosse (AQ commun)
| Symptômes du problème | Excellente solution ! |
|---|---|
| Défaillance soudaine du mandataire | Mise en place d'un mécanisme de réessai à trois reprises pour passer automatiquement à l'IP suivante. |
| Le chargement du site web est ralenti | Sélection prioritaire de l'IP résidentielle statique, la latence peut être réduite 60% |
| Une erreur d'authentification 407 se produit | Vérifier le format du mot de passe du compte, recommander l'authentification par liste blanche de l'API |
Pourquoi recommandez-vous ipipgo ?
Le service d'agence utilisé à votre domicile, pour ne citer que quelques avantages réels :
- IP résidentielle dynamiqueSept dollars et soixante-dix-sept cents.Vous obtenez 1G de trafic pour moins cher que l'achat d'une boisson.
- Si vous êtes bombardé de CAPTCHAs, passez à la ligne TK et vous verrez des résultats immédiats !
- La vitesse de réponse du service clientèle est plus rapide que celle du livreur, la dernière fois à 3 heures du matin pour mentionner le bon de travail, il n'y a que quelques secondes de retour !
Il est recommandé aux débutants d'utiliser la version résidentielle dynamique (version standard) pour tâter le terrain, le volume d'affaires dépendant directement de la version entreprise. Ne sous-estimez pas la différence de 2 yuans, la version entreprise a plus de garantie de survie IP, le moment critique ne tombe pas de la chaîne.
Dites quelque chose qui vient du cœur.
L'IP proxy, c'est comme acheter une assurance, on pense généralement que c'est de l'argent gaspillé, alors que l'IP réellement bloquée ne peut pas venir à temps pour pleurer. J'ai vu trop de gens utiliser des proxys gratuits pour pas cher, et en conséquence, toute la bibliothèque est polluée à mi-chemin de la collecte de données. N'oubliez pas qu'un service proxy fiable est l'élément vital du crawler, et que rien ne peut le sauver.

