


[Python] Web Crawler (4) : Introduction et applications pratiques d'Opener et de Handler
Avant de commencer le contenu suivant, expliquons d'abord les deux méthodes dans urllib2 : info et geturl
La réponse de l'objet de réponse (ou instance HTTPError) renvoyée par urlopen a deux méthodes très utiles info() et geturl( )
1.geturl() :
Ceci renvoie la véritable URL obtenue. Ceci est très utile car urlopen (ou celle utilisée par l'objet opener) peut avoir des redirections. L'URL obtenue peut être différente de l'URL de la demande.
Prenons comme exemple un lien hypertexte dans Renren,
Nous construisons un urllib2_test10.py pour comparer l'URL d'origine et le lien redirigé :
from urllib2 import Request, urlopen, URLError, HTTPError old_url = 'http://rrurl.cn/b1UZuP' req = Request(old_url) response = urlopen(req) print 'Old url :' + old_url print 'Real url :' + response.geturl()
Après l'exécution, vous pouvez voir l'URL pointée par le vrai lien :
2.info() :
Cela renvoie un objet Un objet dictionnaire qui décrit la situation de la page obtenue. En-têtes généralement spécifiques envoyés par le serveur. Actuellement, une instance de httplib.HTTPMessage.
Les en-têtes classiques incluent "Content-length", "Content-type" et d'autres contenus.
Nous construisons une urllib2_test11.py pour tester l'application de l'info :
from urllib2 import Request, urlopen, URLError, HTTPError old_url = 'http://www.baidu.com' req = Request(old_url) response = urlopen(req) print 'Info():' print response.info()
Les résultats de l'opération sont les suivants, vous pouvez voir la page Informations associées :
Parlons de deux concepts importants dans urllib2 : les ouvreurs et les gestionnaires.
1.Openers :
Lorsque vous obtenez une URL, vous utilisez un ouvreur (une instance de urllib2.OpenerDirector).
Normalement, nous utilisons l'ouvreur par défaut : via urlopen.
Mais vous pouvez créer vos propres ouvreurs.
2.Poignées :
Les ouvreurs utilisent des gestionnaires de processeur, et tous les travaux « lourds » sont gérés par les gestionnaires.
Chaque gestionnaire sait comment ouvrir des URL via un protocole spécifique, ou comment gérer différents aspects de l'ouverture d'une URL.
Tels que la redirection HTTP ou les cookies HTTP.
Vous souhaiterez créer un ouvreur si vous souhaitez obtenir des URL avec un gestionnaire spécifique, par exemple obtenir un ouvreur qui gère les cookies, ou obtenir un ouvreur qui ne le fait pas réorienter.
Pour créer un opener, instanciez un OpenerDirector,
puis appelez .add_handler(some_handler_instance).
De même, vous pouvez utiliser build_opener, qui est une fonction plus pratique pour créer des objets d'ouverture. Elle ne nécessite qu'un seul appel de fonction.
build_opener ajoute plusieurs processeurs par défaut, mais fournit un moyen rapide d'ajouter ou de mettre à jour les processeurs par défaut.
Autres gestionnaires que vous souhaiterez peut-être gérer les proxys, la validation et d'autres cas courants mais quelque peu particuliers.
install_opener est utilisé pour créer un ouvreur par défaut (global). Cela signifie que l'appel à urlopen utilisera l'ouvreur que vous avez installé.
L'objet Opener a une méthode open.
Cette méthode peut être utilisée directement pour obtenir des urls comme la fonction urlopen : il n'est généralement pas nécessaire d'appeler install_opener, sauf par commodité.
Après avoir terminé les deux contenus ci-dessus, jetons un coup d'œil au contenu d'authentification de base qui sera utilisé ici.
Authentification de base
Pour démontrer la création et l'installation d'un gestionnaire, nous utiliserons HTTPBasicAuthHandler.
Lorsqu'une vérification de base est requise, le serveur envoie un en-tête (code d'erreur 401) pour demander la vérification. Ceci spécifie le schéma et un « domaine » et ressemble à ceci : Www-authenticate : SCHEME realm="REALM".
Par exemple
Www-authenticate : Basic realm="cPanel Users"
Le client doit utiliser une nouvelle requête et inclure le nom et le mot de passe corrects dans les en-têtes de la requête.
Il s'agit de "l'authentification de base". Afin de simplifier ce processus, nous pouvons créer une instance de HTTPBasicAuthHandler et laisser opener utiliser ce gestionnaire.
HTTPBasicAuthHandler utilise un objet de gestion de mot de passe pour gérer les URL et les domaines afin de mapper les noms d'utilisateur et les mots de passe.
Si vous savez ce qu'est le domaine (dans l'en-tête envoyé depuis le serveur), vous pouvez utiliser HTTPPasswordMgr.
Habituellement, les gens ne se soucient pas de ce qu'est un royaume. Dans ce cas, le HTTPPasswordMgrWithDefaultRealm pratique peut être utilisé.
Cela spécifiera un nom d'utilisateur et un mot de passe par défaut pour votre URL.
Ceci sera fourni lorsque vous fournirez une autre combinaison pour un domaine spécifique.
Nous indiquons cette situation en spécifiant None pour le paramètre realm fourni à add_password.
L'URL de niveau le plus élevé est la première qui nécessite une vérification. Les URL plus profondes que vous transmettez à .add_password() conviendront également.
Après avoir dit tant de bêtises, utilisons un exemple pour démontrer ce qui est dit ci-dessus.
Nous construisons un urllib2_test12.py pour tester l'application d'informations :
# -*- coding: utf-8 -*- import urllib2 # 创建一个密码管理者 password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm() # 添加用户名和密码 top_level_url = "http://example.com/foo/" # 如果知道 realm, 我们可以使用他代替 ``None``. # password_mgr.add_password(None, top_level_url, username, password) password_mgr.add_password(None, top_level_url,'why', '1223') # 创建了一个新的handler handler = urllib2.HTTPBasicAuthHandler(password_mgr) # 创建 "opener" (OpenerDirector 实例) opener = urllib2.build_opener(handler) a_url = 'http://www.baidu.com/' # 使用 opener 获取一个URL opener.open(a_url) # 安装 opener. # 现在所有调用 urllib2.urlopen 将用我们的 opener. urllib2.install_opener(opener)
Remarque : dans l'exemple ci-dessus, nous fournissons uniquement notre HHTTPasicAuthHandler à build_opener .
Les ouvreurs par défaut ont des gestionnaires normaux : ProxyHandler, UnknownHandler, HTTPHandler, HTTPDefaultErrorHandler, HTTPRedirectHandler, FTPHandler, FileHandler, HTTPErrorProcessor.
Le top_level_url dans le code peut en fait être une URL complète (comprenant "http:", ainsi que le nom d'hôte et le numéro de port facultatif).
Par exemple : http://example.com/.
peut également être une "autorité" (c'est-à-dire un nom d'hôte et éventuellement un numéro de port).
Par exemple : "exemple.com" ou "exemple.com:8080".
Ce dernier contient le numéro de port.
Ce qui précède est le contenu de [Python] Web Crawler (4) : Introduction et exemples d'applications d'Opener et de Handler. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn). !

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





Comment créer une puissante application de robot d'exploration Web à l'aide de React et Python Introduction : Un robot d'exploration Web est un programme automatisé utilisé pour explorer des données Web via Internet. Avec le développement continu d’Internet et la croissance explosive des données, les robots d’exploration Web deviennent de plus en plus populaires. Cet article explique comment utiliser React et Python, deux technologies populaires, pour créer une puissante application de robot d'exploration Web. Nous explorerons les avantages de React en tant que framework front-end et de Python en tant que moteur d'exploration, et fournirons des exemples de code spécifiques. 1. Pour

Utilisez les langages Vue.js et Perl pour développer des robots d'exploration Web et des outils de récupération de données efficaces. Ces dernières années, avec le développement rapide d'Internet et l'importance croissante des données, la demande de robots d'exploration Web et d'outils de récupération de données a également augmenté. Dans ce contexte, c'est un bon choix de combiner le langage Vue.js et Perl pour développer des robots d'exploration Web et des outils de scraping de données efficaces. Cet article expliquera comment développer un tel outil à l'aide du langage Vue.js et Perl, et joindra des exemples de code correspondants. 1. Introduction au langage Vue.js et Perl

Un robot d'exploration Web (également connu sous le nom d'araignée Web) est un robot qui recherche et indexe le contenu sur Internet. Essentiellement, les robots d'exploration Web sont chargés de comprendre le contenu d'une page Web afin de le récupérer lorsqu'une requête est effectuée.

Un robot d'exploration Web est un programme automatisé qui visite automatiquement les sites Web et en analyse les informations. Cette technologie est de plus en plus courante dans le monde Internet d'aujourd'hui et est largement utilisée dans l'exploration de données, les moteurs de recherche, l'analyse des médias sociaux et d'autres domaines. Si vous souhaitez apprendre à écrire un robot d'exploration Web simple à l'aide de PHP, cet article vous fournira des orientations et des conseils de base. Tout d’abord, vous devez comprendre quelques concepts et techniques de base. Cible d'exploration Avant d'écrire un robot, vous devez sélectionner une cible d'exploration. Il peut s'agir d'un site Web spécifique, d'une page Web spécifique ou de l'intégralité d'Internet.

Avec le développement d’Internet, toutes sortes de données deviennent de plus en plus accessibles. En tant qu'outil d'obtention de données, les robots d'exploration Web ont attiré de plus en plus d'attention. Dans les robots d'exploration Web, les requêtes HTTP constituent un lien important. Cet article présentera en détail les méthodes de requête HTTP courantes dans les robots d'exploration Web PHP. 1. Méthode de requête HTTP La méthode de requête HTTP fait référence à la méthode de requête utilisée par le client lors de l'envoi d'une requête au serveur. Les méthodes de requête HTTP courantes incluent GET, POST et PU

Comment utiliser PHP et Swoole pour le développement de robots Web à grande échelle ? Introduction : Avec le développement rapide d'Internet, le Big Data est devenu l'une des ressources importantes de la société d'aujourd'hui. Afin d’obtenir ces précieuses données, des robots d’exploration Web ont vu le jour. Les robots d'exploration Web peuvent visiter automatiquement divers sites Web sur Internet et en extraire les informations requises. Dans cet article, nous explorerons comment utiliser PHP et l'extension swoole pour développer des robots d'exploration Web efficaces et à grande échelle. 1. Comprendre les principes de base des robots d'exploration Web Les principes de base des robots d'exploration Web sont très simples.

Avec le développement rapide d’Internet, les données sont devenues l’une des ressources les plus importantes à l’ère de l’information d’aujourd’hui. En tant que technologie qui obtient et traite automatiquement les données du réseau, les robots d'exploration Web attirent de plus en plus d'attention et d'applications. Cet article explique comment utiliser PHP pour développer un robot d'exploration Web simple et réaliser la fonction d'obtention automatique de données réseau. 1. Présentation de Web Crawler Le robot d'exploration Web est une technologie qui obtient et traite automatiquement les ressources réseau. Son principal processus de travail consiste à simuler le comportement du navigateur, à accéder automatiquement aux adresses URL spécifiées et à extraire toutes les informations.

Notes d'étude PHP : Robot d'exploration Web et collecte de données Introduction : Un robot d'exploration Web est un outil qui explore automatiquement les données d'Internet. Il peut simuler le comportement humain, parcourir les pages Web et collecter les données requises. En tant que langage de script côté serveur populaire, PHP joue également un rôle important dans le domaine des robots d'exploration Web et de la collecte de données. Cet article explique comment écrire un robot d'exploration Web à l'aide de PHP et fournit des exemples de code pratiques. 1. Principes de base des robots d'exploration Web Les principes de base des robots d'exploration Web sont d'envoyer des requêtes HTTP, de recevoir et d'analyser la réponse H du serveur.
