


La puissance de Scrapy : Comment reconnaître et traiter les codes de vérification ?
Scrapy est un framework Python puissant qui nous aide à explorer facilement les données sur les sites Web. Cependant, nous rencontrons des problèmes lorsque le site Web que nous souhaitons explorer possède un code de vérification. Le but des CAPTCHA est d’empêcher les robots d’exploration automatisés d’attaquer un site Web. Ils ont donc tendance à être très complexes et difficiles à déchiffrer. Dans cet article, nous expliquerons comment utiliser le framework Scrapy pour identifier et traiter les CAPTCHA afin de permettre à nos robots d'exploration de contourner ces défenses.
Qu'est-ce qu'un code de vérification ?
Un CAPTCHA est un test utilisé pour prouver que l'utilisateur est un véritable être humain et non une machine. Il s'agit généralement d'une chaîne de texte obscurcie ou d'une image illisible qui oblige l'utilisateur à saisir ou à sélectionner manuellement ce qui est affiché. Les CAPTCHA sont conçus pour détecter les robots et les scripts automatisés afin de protéger les sites Web contre les attaques malveillantes et les abus.
Il existe généralement trois types de CAPTCHA :
- CAPTCHA textuel : les utilisateurs doivent copier et coller une chaîne de texte pour prouver qu'ils sont un utilisateur humain et non un robot.
- Code de vérification du numéro : l'utilisateur doit saisir le numéro affiché dans la zone de saisie.
- Code de vérification de l'image : l'utilisateur est invité à saisir les caractères ou les chiffres d'une image affichée dans la zone de saisie. Il s'agit généralement du type le plus difficile à déchiffrer car les caractères ou les chiffres de l'image peuvent être déformés, égarés ou avoir un autre visuel. bruit. .
Pourquoi devez-vous traiter les codes de vérification ?
Les robots d'exploration sont souvent automatisés à grande échelle, ils peuvent donc facilement être identifiés comme des robots et interdits aux sites Web d'obtenir des données. Des CAPTCHA ont été introduits pour éviter que cela ne se produise. Une fois qu'ep entre dans l'étape du code de vérification, le robot d'exploration Scrapy cessera d'attendre la saisie de l'utilisateur et ne pourra donc pas continuer à analyser les données, ce qui entraînera une diminution de l'efficacité et de l'intégrité du robot d'exploration.
Nous avons donc besoin d'un moyen de gérer le captcha afin que notre robot puisse le transmettre automatiquement et continuer sa tâche. Nous utilisons généralement des outils ou des API tiers pour compléter la reconnaissance des codes de vérification. Ces outils et API utilisent des algorithmes d'apprentissage automatique et de traitement d'images pour reconnaître les images et les caractères et renvoyer les résultats à notre programme.
Comment gérer les codes de vérification dans Scrapy ?
Ouvrez le fichier settings.py de Scrapy, nous devons modifier le champ DOWNLOADER_MIDDLEWARES et ajouter le proxy suivant :
DOWNLOADER_MIDDLEWARES = {'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware' : 350,
'scrapy.contrib.downloadermiddleware.retry .Retry Intergiciel ': 350,'scrapy.contrib.downloadermiddleware.redirect.RedirectMiddleware': 400,
'scrapy.contrib.downloadermiddleware.cookies.CookiesMiddleware': 700,'scrapy.contrib.downloadermiddleware.httpproxy.HttpProxyMiddleware': 750,
'scrapy .contrib.downloadermiddleware.useragent.UserAgentMiddleware': 400,'scrapy.contrib.downloadermiddleware.defaultheaders.DefaultHeadersMiddleware': 550,
'scrapy.contrib.downloadermiddleware.ajaxcrawl.AjaxCrawlMiddleware': 900,'scrapy.contrib.download ermi logiciel de compression http. .HttpCompressionMiddleware' : 800,
'scrapy.contrib.downloadermiddleware.chunked.ChunkedTransferMiddleware' : 830,'scrapy.contrib.downloadermiddleware.stats.DownloaderStats' : 850,
'tutorial.middlewares.CaptchaMiddleware' : 999}
Dans Dans Dans cet exemple, nous utilisons CaptchaMiddleware pour gérer le code de vérification. CaptchMiddleware est une classe middleware personnalisée qui gérera la demande de téléchargement et appellera l'API pour identifier le code de vérification si nécessaire, puis remplira le code de vérification dans la demande et reviendra pour poursuivre l'exécution.
Exemple de code :
class CaptchaMiddleware(object) :
def __init__(self): self.client = CaptchaClient() self.max_attempts = 5 def process_request(self, request, spider): # 如果没有设置dont_filter则默认开启 if not request.meta.get('dont_filter', False): request.meta['dont_filter'] = True if 'captcha' in request.meta: # 带有验证码信息 captcha = request.meta['captcha'] request.meta.pop('captcha') else: # 没有验证码则获取 captcha = self.get_captcha(request.url, logger=spider.logger) if captcha: # 如果有验证码则添加到请求头 request = request.replace( headers={ 'Captcha-Code': captcha, 'Captcha-Type': 'math', } ) spider.logger.debug(f'has captcha: {captcha}') return request def process_response(self, request, response, spider): # 如果没有验证码或者验证码失败则不重试 need_retry = 'Captcha-Code' in request.headers.keys() if not need_retry: return response # 如果已经尝试过,则不再重试 retry_times = request.meta.get('retry_times', 0) if retry_times >= self.max_attempts: return response # 验证码校验失败则重试 result = self.client.check(request.url, request.headers['Captcha-Code']) if not result: spider.logger.warning(f'Captcha check fail: {request.url}') return request.replace( meta={ 'captcha': self.get_captcha(request.url, logger=spider.logger), 'retry_times': retry_times + 1, }, dont_filter=True, ) # 验证码校验成功则继续执行 spider.logger.debug(f'Captcha check success: {request.url}') return response def get_captcha(self, url, logger=None): captcha = self.client.solve(url) if captcha: if logger: logger.debug(f'get captcha [0:4]: {captcha[0:4]}') return captcha return None
Dans ce middleware, nous avons utilisé l'objet CaptchaClient comme middleware de solution captcha, nous pouvons utiliser plusieurs middleware de solution captcha.
Remarques
Lors de la mise en œuvre de ce middleware, veuillez prêter attention aux points suivants :
- L'identification et le traitement des codes de vérification nécessitent l'utilisation d'outils ou d'API tiers, et nous devons nous assurer que nous disposons d'une licence légale. et suivez les exigences du fabricant. Utilisez-les.
- Après l'ajout d'un tel middleware, le processus de demande deviendra plus complexe et les développeurs devront tester et déboguer soigneusement pour s'assurer que le programme peut fonctionner correctement.
Conclusion
En utilisant le framework Scrapy et le middleware pour la reconnaissance et le traitement du code de vérification, nous pouvons contourner efficacement la stratégie de défense du code de vérification et réaliser une exploration efficace du site Web cible. Cette méthode permet généralement d'économiser du temps et des efforts par rapport à la saisie manuelle des codes de vérification et est plus efficace et plus précise. Cependant, il est important de noter que vous lisez et respectez les accords de licence et les exigences des outils et API tiers avant de les utiliser.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds





1. Tout d'abord, nous cliquons avec le bouton droit sur l'espace vide de la barre des tâches et sélectionnons l'option [Gestionnaire des tâches], ou cliquons avec le bouton droit sur le logo de démarrage, puis sélectionnons l'option [Gestionnaire des tâches]. 2. Dans l'interface du Gestionnaire des tâches ouverte, nous cliquons sur l'onglet [Services] à l'extrême droite. 3. Dans l'onglet [Service] ouvert, cliquez sur l'option [Ouvrir le service] ci-dessous. 4. Dans la fenêtre [Services] qui s'ouvre, cliquez avec le bouton droit sur le service [InternetConnectionSharing(ICS)], puis sélectionnez l'option [Propriétés]. 5. Dans la fenêtre des propriétés qui s'ouvre, remplacez [Ouvrir avec] par [Désactivé], cliquez sur [Appliquer] puis cliquez sur [OK]. 6. Cliquez sur le logo Démarrer, puis cliquez sur le bouton d'arrêt, sélectionnez [Redémarrer] et terminez le redémarrage de l'ordinateur.

Que dois-je faire si Google Chrome n'affiche pas l'image du code de vérification ? Lors de la connexion à une page Web à l'aide de Google Chrome, un code de vérification est parfois requis. Certains utilisateurs constatent que Google Chrome ne peut pas afficher correctement le contenu de l'image lorsqu'il utilise des codes de vérification d'image. Qu'est-ce qui devrait être fait? L'éditeur ci-dessous vous expliquera comment gérer le code de vérification de Google Chrome qui ne s'affiche pas. J'espère que cela sera utile à tout le monde ! Introduction à la méthode : 1. Entrez dans le logiciel, cliquez sur le bouton « Plus » dans le coin supérieur droit et sélectionnez « Paramètres » dans la liste d'options ci-dessous pour entrer. 2. Après être entré dans la nouvelle interface, cliquez sur l'option « Paramètres de confidentialité et sécurité » sur la gauche. 3. Cliquez ensuite sur « Paramètres du site Web » à droite

Apprenez rapidement à ouvrir et traiter des fichiers au format CSV Avec le développement continu de l'analyse et du traitement des données, le format CSV est devenu l'un des formats de fichiers les plus utilisés. Un fichier CSV est un fichier texte simple et facile à lire avec différents champs de données séparés par des virgules. Que ce soit dans la recherche académique, l'analyse commerciale ou le traitement de données, nous rencontrons souvent des situations où nous devons ouvrir et traiter des fichiers CSV. Le guide suivant vous montrera comment apprendre rapidement à ouvrir et traiter des fichiers au format CSV. Étape 1 : Comprendre le format de fichier CSV. Tout d'abord,

Le numéro virtuel peut recevoir le code de vérification. Tant que le numéro de téléphone mobile renseigné lors de l'inscription est conforme à la réglementation et que le numéro de téléphone mobile peut être connecté normalement, vous pouvez recevoir le code de vérification par SMS. Cependant, vous devez être prudent lorsque vous utilisez des numéros de téléphone mobile virtuels. Certains sites Web ne prennent pas en charge l'enregistrement de numéros de téléphone mobile virtuels, vous devez donc choisir un fournisseur de services de numéro de téléphone mobile virtuel classique.

Dans le processus de développement PHP, la gestion des caractères spéciaux est un problème courant, en particulier dans le traitement des chaînes, les caractères spéciaux sont souvent échappés. Parmi eux, la conversion de caractères spéciaux en guillemets simples est une exigence relativement courante, car en PHP, les guillemets simples sont un moyen courant d'encapsuler des chaînes. Dans cet article, nous expliquerons comment gérer les guillemets simples de conversion de caractères spéciaux en PHP et fournirons des exemples de code spécifiques. En PHP, les caractères spéciaux incluent, sans s'y limiter, les guillemets simples ('), les guillemets doubles ("), la barre oblique inverse (), etc. Dans les chaînes

La gestion des formats de données XML et JSON dans le développement C# nécessite des exemples de code spécifiques. Dans le développement de logiciels modernes, XML et JSON sont deux formats de données largement utilisés. XML (Extensible Markup Language) est un langage de balisage permettant de stocker et de transmettre des données, tandis que JSON (JavaScript Object Notation) est un format d'échange de données léger. Dans le développement C#, nous devons souvent traiter et exploiter des données XML et JSON. Cet article se concentrera sur la façon d'utiliser C# pour traiter ces deux formats de données et les attacher.

Si le système d'exploitation que nous utilisons est Win7, certains amis peuvent ne pas réussir à passer de Win7 à Win10 lors de la mise à niveau. L'éditeur pense que nous pouvons réessayer la mise à jour pour voir si cela peut résoudre le problème. Jetons un coup d'œil à ce que l'éditeur a fait pour plus de détails ~ Que faire si Win7 ne parvient pas à passer à Win10 Méthode 1 : 1. Il est recommandé de télécharger d'abord un pilote pour évaluer si votre ordinateur peut être mis à niveau vers Win10. utilisez le test du pilote après la mise à niveau. Vérifiez s'il y a des anomalies du pilote, puis corrigez-les en un seul clic. Méthode 2 : 1. Supprimez tous les fichiers sous C:\Windows\SoftwareDistribution\Download. 2.win+R exécutez "wuauclt.e

Comment utiliser JavaScript pour implémenter la fonction de code de vérification ? Avec le développement d'Internet, les codes de vérification sont devenus l'un des mécanismes de sécurité indispensables dans les sites Web et les applications. Le code de vérification (VerificationCode) est une technologie utilisée pour déterminer si l'utilisateur est un humain plutôt qu'une machine. Grâce aux CAPTCHA, les sites Web et les applications peuvent empêcher les envois de spam, les attaques malveillantes, les robots d'exploration, etc. Cet article explique comment utiliser JavaScript pour implémenter la fonction de code de vérification et fournir un code spécifique.
