为了避免爬虫被封 IP ,网上搜索教程说需要建立代理池。但是付费代理都好贵。。。不过好在网上已经有不少免费提供代理的网站了。因此,我打算写个爬虫去获取这些免费 IP ~
策略步骤
用种子关键词例如“代理 IP ”在各个搜索引擎上搜索,获取候选 URL
爬取候选 URL ,将代理地址储存下来
验证代理地址,将可用的代理地址放入代理池
难点
如何去验证维护这些代理地址
如何知道哪些代理地址适合哪些网站(可用性,响应时间)
效率问题(之前写过简单的验证脚本,但是效率非常低)
小伙伴们有不有什么好的办法能解决这些问题呢?
Laissez-moi l'écrire. J'avais déjà fait le même travail auparavant, et j'avais également besoin d'un agent à ce moment-là. Ensuite, j'ai écrit mon propre robot pour effectuer une récupération et une mise à jour automatiques.
En ce qui concerne l'adresse du proxy, je n'ai pas laissé le robot choisir le site Web par lui-même. Au lieu de cela, j'ai examiné manuellement plusieurs sites Web fournissant des proxys gratuits, puis j'ai écrit des robots pour explorer différents sites Web proxy
;En réponse à la difficulté que vous avez évoquée :
Pour vérification, l'adresse explorée pour la première fois sera directement vérifiée si elle est disponible. Si elle peut être utilisée, elle sera stockée dans la base de données ou conservée. En raison du manque de fiabilité de l'agent, elle sera conservée. Il est nécessaire de vérifier régulièrement si l'agent capturé est disponible. I directement Une tâche planifiée est lancée sur le serveur uWSGI, qui sera vérifiée toutes les demi-heures et un nouvel agent sera capturé toutes les heures. Bien entendu, vous pouvez également utiliser des tâches planifiées. comme crontab
Utilisez directement le proxy capturé pour accéder au site Web que vous devez visiter. Si vous devez fournir différents proxys pour différents sites Web, vous pouvez vérifier et stocker les informations de vérification pertinentes ensemble
Les problèmes d'efficacité sont faciles à gérer. Les opérations de vérification du réseau sont toutes des tâches gourmandes en E/S, qui peuvent être résolues avec des coroutines, des multi-threads et des multi-processus. Le GIL de Python n'affecte pas le multi-threading. pour améliorer les tâches gourmandes en E/S
multithreading-spider J'ai déjà utilisé multi-threading + file d'attente pour créer un simple robot d'exploration de proxy. La démo de src est un exemple spécifique. Elle utilise un simple modèle producteur-consommateur. un producteur. Vérification L'analyseur de disponibilité de l'agent agit en tant que consommateur et peut afficher la progression d'une tâche spécifique.
Vous pouvez essayer ceci, un pool de proxy basé sur Python.
Capturez automatiquement les ressources proxy sur Internet et facilitez l'expansion.
https://github.com/WiseDoge/P...
Vous pouvez jeter un œil à ce projet : https://github.com/jhao104/pr...
Service de pool de proxy open source