
Quand les chasseurs de têtes du recrutement rencontrent les crawlers de Python
Récemment, j'ai discuté avec quelques anciens des RH et j'ai découvert que leur plus grand casse-tête était de trouver des CV. Le petit frère d'un chasseur de têtes s'est plaint de l'efficacité de la collecte manuelle des données sur LinkedIn, qui est désormais plus lente qu'un escargot. Ce n'est pas le cas, je lui ai donné du jour au lendemain un script Python complet, avec la fonctionipipgodes services de l'agence qui tire l'efficacité vers le haut dès la sortie de la boîte. Aujourd'hui, nous allons démonter ce combo et l'émietter pour nous assurer que même les plus petits peuvent jouer avec.
Les IP proxy sont une bouée de sauvetage pour les robots d'indexation
LinkedIn的反爬机制比安检还严,用自家IP硬刚?分分钟给你封号没商量。这里教你们个骚操作:IP proxy pour les robots d'indexationLe principe est comme le jeu de la poule mouillée, chaque demande de changement d'adresse IP. Le principe est le suivant : à chaque demande de changement d'adresse IP, le serveur ne peut pas savoir s'il s'agit d'une personne ou d'une machine.
importation de requêtes
from itertools import cycle
Pool de proxys du backend ipipgo
proxies = [
"http://user:pass@gateway.ipipgo.com:30001",
"http://user:pass@gateway.ipipgo.com:30002".
... Préparer au moins 20 IP
]
proxy_pool = cycle(proxies)
for page in range(1,50) : current_proxy = next(proxy_pool)
current_proxy = next(proxy_pool)
current_proxy = next(proxy_pool)
response = requests.get(
url="https://www.linkedin.com/jobs/search/",
url="", proxies={"http" : current_proxy},
headers={"User-Agent" : "Mozilla/5.0 (Windows NT 10.0 ; Win64 ; x64)"}
)
print(f "La page {page} de données est arrivée !")
except.
print("Cette IP est bloquée, passez à la suivante !")
Trois règles d'or pour le choix d'une IP proxy
Il existe toutes sortes de services proxy sur le marché, mais vous devez reconnaître ces trois services pour LinkedIn :
1. priorité IP résidentielleL'IP de la salle de serveurs est comme une salopette dans une boîte de nuit, c'est trop voyant. Il est recommandé d'utiliser le proxy résidentiel dynamique d'ipipgo, le véritable environnement de réseau domestique !
2. le contrôle de la concurence doit être robusteLes demandes d'accès à l'Internet : N'envoyez pas 10 demandes par seconde comme une éruption cutanée, utilisez l'API de planification intelligente d'ipipgo pour contrôler la fréquence automatiquement !
3. précision géographiqueLe site web de la Commission européenne : Vous voulez débaucher des ingénieurs de la Silicon Valley ? N'oubliez pas de choisir un nœud IP sur la côte ouest des États-Unis.
Guide pratique pour éviter la fosse
La semaine dernière, pour aider une entreprise de commerce électronique à récupérer les données postales, ils ont écrit leur propre script qui est toujours interdit :
| questions | prescription |
|---|---|
| User-Agent est corrigé | Généré aléatoirement avec la bibliothèque fake_useragent |
| Demandes trop régulièrement espacées | Ajouter random.uniform(1,3) pour créer l'illusion d'une manipulation humaine |
| Statut de connexion anormal | Fonction d'attente de session avec l'ipipgo |
Ancien conducteur QA Time
Q : Que dois-je faire si je manque soudainement de données pendant l'exploration ?
R : 80% est déclenché par le contrôle du vent, il faut immédiatement faire trois choses : 1. vider les cookies 2. remplacer l'IP ipipgo 3. réduire la fréquence des requêtes à 3 fois par minute
Q : Les proxys gratuits fonctionnent-ils ?
A : Réveillez-vous mon frère ! Les pools d'IP gratuits sont comme des toilettes publiques, tous ceux qui les ont utilisés sont en sécurité ? Comme nous l'avons déjà testé, le taux de disponibilité de l'IP gratuite est inférieur à 10%, et le taux de survie de l'ipipgo peut atteindre plus de 98%.
Q : Combien de PI sont nécessaires pour être suffisants ?
A:Selon notre test de stress, s'il y a 1.000 requêtes par heure, il est plus sûr de préparer 50 IP pour la rotation. Le paquet d'ipipgo a un pool d'IP dynamique, qui réapprovisionne automatiquement de nouvelles IP.
Programme de capture amélioré
La solution ultime pour les reachers :
1) Construire un crawler distribué avec le framework Scrapy
2. accès à l'API d'ipipgo pour obtenir les dernières IP de proxy.
3. déploiement sur des serveurs en nuage et exécution régulière
4. le stockage automatique des données dans la base de données MongoDB
Après l'exécution de l'ensemble des processus, mettez en place un robot WeChat qui, chaque jour avant de partir au travail, enverra automatiquement le rapport à votre téléphone portable, gorgeous~.
En conclusion, la collecte de données s'apparente à une guérilla.rapide, précis et stableNotre équipe a testé le service proxy d'ipipgo pendant trois mois et la stabilité est vraiment quelque chose à battre. En particulier, leurIP résidentielle dynamiqueLes données de LinkedIn peuvent être consultées localement, et le système anti-escalade ne peut pas les attraper du tout. Si vous avez besoin d'aller sur le site officiel pour jeter un coup d'œil, les nouveaux utilisateurs peuvent envoyer 1G de trafic à l'essai, ce qui est suffisant pour tester les fonctions de base.

