
Tout d'abord, pourquoi utiliser BeautifulSoup pour trouver un proxy IP ?
Les vieux briscards de la collecte de données savent que de nombreux sites cachent l'adresse IP du proxy dans la structure HTML. À l'heure actuelletrouver_toutC'est un peu comme un détecteur de métaux qui peut vous aider à trouver des adresses IP de proxy dans les coins et recoins d'une page web. Par exemple, certains sites web placent les adresses IP dans une div avec une classe appelée "proxy-list", de sorte que l'utilisation de find_all('div', class_=' proxy-list') permettra de les trouver toutes.
from bs4 import BeautifulSoup
html_doc = """
<div class="proxy-list">
<span>192.168.1.1:8080</span>
<span>10.0.0.1:8888</span>
</div>
"""
soup = BeautifulSoup(html_doc, 'html.parser')
ip_list = [tag.text for tag in soup.find_all('span')]
Deuxièmement, le combat proprement dit : sortir les différents formats de l'IP proxy
Certains sites web sont si sournois qu'ils cachent l'IP et le port séparément. C'est le moment de jouercombinaisonde la structure. Par exemple, en rencontrant cette structure :
Le code de capture doit être écrit de cette manière :
proxies = []
for li in soup.find_all('li', attrs={"data-ip" : True}): :
ip = li['data-ip']
port = li['data-port']
proxies.append(f"{ip}:{port}")
Troisièmement, évitez les trois principales astuces de l'anti-escalade
1. Le grand déguisementAvec ipipgo.IP résidentielle dynamiqueEn-tête de demande de rotation
2. magie du temps: sommeil aléatoire 1-3 secondes après find_all
3. opérations distribuéesAPI node harvesting with multiple ipipgo's at the same time (Récolte de nœuds d'API avec plusieurs ipipgo's en même temps)
IV. Manuel de gestion des cas particuliers
rencontrerdonnées paginéesNe paniquez pas, prenez les liens vers les numéros de page et parcourez-les un par un :
page_links = [a['href'] for a in soup.find_all('a', class_='page-link')]
pour lien dans page_liens.
N'oubliez pas de basculer vers le proxy ipipgo ici
response = requests.get(link, proxies={"http" : "ipipgo.com:8000"})
V. Le temps de l'assurance qualité : déminage des questions fréquemment posées
Q : Pourquoi find_all renvoie-t-il toujours une liste vide ?
R : Quatre-vingt pour cent du site utilise le chargement dynamique, sur l'ipipgo.S5 AgentC'est la bonne chose à faire avec Selenium
Q : Que dois-je faire si j'obtiens des adresses IP en double ?
R : Utilisez la déduplication des ensembles de Python, ou utilisez simplement l'ipipgo fourni par le programmeAPI de déduplication en temps réel
Q : Que dois-je faire si je dois vérifier la validité de la procuration ?
R : Le paquet d'ipipgo est livré avec le logicielFonction de détection de la survieCela vous évite d'avoir à écrire vos propres scripts de validation.
Sixièmement, pourquoi les conducteurs âgés choisissent-ils ipipgo ?
1) ExclusifTaux de survie IP 99,2%C'est un grand pas en avant par rapport à la concurrence.
2. soutientaux horaireIl n'y a pas de gaspillage d'argent pour des missions temporaires.
3. la mise à disposition de produits prêts à l'emploiModèle d'analyse de BeautifulSoupLa première fois, même un débutant peut s'y habituer en une seconde.
En fin de compte, pour dire la vérité, chercher des IP proxy, c'est comme chercher de l'or, l'outil encore une fois bovin doit aussi avoir une source fiable d'extraction. J'ai utilisé cinq ou six fournisseurs de services, ou le pool d'IP d'ipipgo est le plus à jour. En particulier, leFonction de routage intelligentLe nœud le plus rapide est automatiquement associé au nœud le plus rapide, ce qui est beaucoup plus gênant que la commutation manuelle. Récemment, j'ai collecté des données sur le commerce électronique et, après avoir raccroché ipipgo, la vitesse de collecte a directement doublé, la clé n'a pas été bloquée, ce qui est aussi stable qu'un vieux chien.

