Maison >développement back-end >Tutoriel Python >Qu'est-ce qu'un robot ? Quel est le processus de base du robot d'exploration ?

Qu'est-ce qu'un robot ? Quel est le processus de base du robot d'exploration ?

零下一度
零下一度original
2017-07-23 13:41:0336923parcourir

Un robot d'exploration Web est un programme, principalement utilisé pour les moteurs de recherche. Il lit tout le contenu et les liens d'un site Web, crée des index de texte intégral pertinents dans la base de données, puis accède à un autre site Web. Une grosse araignée.
Lorsque les gens recherchent des mots-clés sur Internet (comme Google), ils comparent en fait le contenu de la base de données pour trouver ceux qui correspondent à l'utilisateur. La qualité du programme d'exploration du Web détermine la capacité de l'utilisateur. moteur de recherche , par exemple, le moteur de recherche de Google est évidemment meilleur que Baidu car son programme de robot d'exploration Web est efficace et sa structure de programmation est bonne.

1. Qu'est-ce qu'un robot d'exploration 

 Tout d’abord, comprenons brièvement les robots d’exploration. Il s'agit d'un processus consistant à demander un site Web et à extraire les données dont vous avez besoin. Quant à savoir comment grimper et comment grimper, ce sera le contenu de l'apprentissage plus tard, il n'est donc pas nécessaire d'y revenir pour l'instant. Grâce à notre programme, nous pouvons envoyer des requêtes au serveur en notre nom, puis télécharger de grandes quantités de données par lots.

2. Processus de base du robot d'exploration

  1. Lancer une requête : lancer une requête au serveur via l'URL, les demandes peuvent contenir des informations d'en-tête supplémentaires.

  2. Obtenir le contenu de la réponse : si le serveur répond normalement, nous recevrons une réponse. La réponse est le contenu de la page Web que nous avons demandée, qui peut. inclure une chaîne Json ou des données binaires (vidéo, image), etc.

  3. Analyser le contenu : s'il s'agit de code HTML, il peut être analysé à l'aide d'un analyseur de page Web. S'il s'agit de données Json, elles peuvent être converties en Json. objet pour l'analyse. S'il s'agit de données binaires, elles peuvent être enregistrées dans un fichier pour un traitement ultérieur.

  4. Enregistrer les données : vous pouvez les enregistrer dans un fichier local ou dans une base de données (MySQL, Redis, Mongodb, etc.)  

 

3. Que comprend la demande ?

Lorsque nous envoyons un demande au serveur via le navigateur Lors d'une demande, quelles informations cette demande contient-elle ? Nous pouvons l'expliquer via les outils de développement de Chrome (si vous ne savez pas comment l'utiliser, lisez les notes dans cet article).

  1. Méthode de demande : les méthodes de demande les plus couramment utilisées incluent la demande d'obtention et la demande de publication. La demande de publication la plus courante en développement consiste à la soumettre via un formulaire. Du point de vue de l'utilisateur, la plus courante est la vérification de la connexion. Lorsque vous devez saisir certaines informations pour vous connecter, cette demande est une demande de publication.

  2. url Uniform Resource Locator : une URL, une image, une vidéo, etc. peuvent toutes être définies à l'aide d'une URL. Lorsque nous demandons une page Web, nous pouvons afficher la balise réseau. La première est généralement un document, ce qui signifie que ce document est un code HTML qui n'est pas rendu avec des images externes, css, js, etc. Sous ce document, nous le ferons. voir Pour une série de jpg, js, etc., il s'agit d'une requête lancée encore et encore par le navigateur basée sur le code html, et l'adresse demandée est l'adresse url de l'image, js, etc. dans le document html

  3. en-têtes de requête : en-têtes de requête, comprenant le type de requête, les informations sur les cookies et le type de navigateur de cette requête. Cet en-tête de requête est toujours utile lorsque nous explorons des pages Web. Le serveur examinera les informations en analysant l'en-tête de requête pour déterminer si la requête est légitime. Ainsi, lorsque nous faisons une demande via un programme qui masque le navigateur, nous pouvons définir les informations d'en-tête de la demande.

  4. Corps de la requête : la demande de publication encapsulera les informations de l'utilisateur dans les données du formulaire pour la soumission, donc par rapport à la demande d'obtention, le contenu de la balise Headers de la demande de publication est là sera un package d’informations supplémentaires appelé Form Data. La requête get peut être simplement comprise comme un retour chariot de recherche ordinaire, et les informations seront ajoutées à la fin de l'URL à des intervalles ?

 

4. Que comprend la réponse ?

  1. Statut de la réponse : le code d'état peut être consulté via Général dans les en-têtes. 200 indique un succès, 301 saut, 404 page Web introuvable, 502 erreur de serveur, etc.

  2. En-tête de réponse : inclut le type de contenu, les informations sur les cookies, etc.

  3. Corps de la réponse : le but de la requête est d'obtenir le corps de la réponse, comprenant le code html, le Json et les données binaires.

5. Démonstration de requête simple

Effectuer des requêtes de pages Web via la bibliothèque de requêtes de Python :

 

 Le résultat de sortie est le code de la page Web qui n'a pas encore été rendu, c'est-à-dire le contenu du corps de la requête. Vous pouvez afficher les informations d'en-tête de réponse :

 

Vous pouvez également ajouter des en-têtes de demande aux informations de demande :

 

Prendre des photos (logo Baidu) : 🎜>

 

6. Comment résoudre les problèmes de rendu JavaScript

Utiliser le pilote Web Selenium

 

 

Entrez print(driver.page_source ) et vous pouvez voir que cette fois le code est le code après rendu.

[Remarques] Utilisation du navigateur Chrome

F12 pour ouvrir les outils de développement

Code HTML.

Tag réseau

 
  •  Tag réseau Là Ce sont des données demandées par le navigateur. Cliquez dessus pour afficher des informations détaillées, telles que les en-têtes de demande, les en-têtes de réponse, etc. mentionnés ci-dessus.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn