Table des matières
Conception simple du robot
Introduction
Conception
Stratégie de crawling (réponse anti-triche)
Maison développement back-end tutoriel php robot d'exploration simple php

robot d'exploration simple php

May 14, 2018 pm 02:45 PM
爬虫

Conception simple du robot

Introduction

Dire qu'il s'agit d'un robot est un peu exagéré, mais le nom est juste, j'ai donc ajouté le mot "simple" devant pour montrer ça
Il s'agit d'un robot castré, qui peut être utilisé simplement ou avec lequel jouer.
L'entreprise a récemment lancé une nouvelle activité pour capturer les données des produits concurrents. Après avoir lu le système de capture écrit par un ancien camarade de classe, il y a certains problèmes
Les règles sont trop strictes, qu'il s'agisse d'évolutivité ou de polyvalence. La surface est un peu faible. Le système précédent devait faire une liste
puis ramper à partir de cette liste. Il n'y avait aucune notion de profondeur, ce qui était un défaut pour les robots. Par conséquent, j'ai décidé de créer un
crawler légèrement plus général, d'ajouter le concept de profondeur et d'améliorer l'évolutivité et la généralité.

Conception

Nous avons convenu ici que le contenu à traiter (peut-être l'URL, le nom d'utilisateur, etc.) nous l'appellerons entité.
Compte tenu de l'évolutivité, le concept de file d'attente est adopté ici. Toutes les entités à traiter sont stockées dans la file d'attente,
retire une entité de la file d'attente. le traitement est terminé, stockez et stockez les entités nouvellement capturées dans la file d'attente. Bien sûr, ici
nous devons également effectuer un traitement de déduplication du stockage et un traitement de déduplication de file d'attente pour empêcher le programme de traitement d'effectuer un travail inutile.

  +--------+ +-----------+ +----------+
  | entity | |  enqueue  | |  result  |
  |  list  | | uniq list | | uniq list|
  |        | |           | |          |
  |        | |           | |          |
  |        | |           | |          |
  |        | |           | |          |
  +--------+ +-----------+ +----------+
Copier après la connexion

Lorsque chaque entité entre dans la file d'attente, 入队排重队列 définit l'indicateur d'entité de mise en file d'attente sur un, puis ne rejoint plus la file d'attente. Lorsque l'entité
est traitée, les données de résultat sont obtenues après. les données de résultat sont traitées Marquez les versets résultants comme 结果数据排重list, bien sûr
, ici vous pouvez également faire mise à jour traitement, et le code peut être compatible.

                     +-------+                     |  开始 |                     +---+---+                         |                         v                     +-------+  enqueue deep为1的实体                     | init  |-------------------------------->                      +---+---+  set 已经入过队列 flag                         |                             v                        +---------+ empty queue  +------+            +------>| dequeue +------------->| 结束 |            |       +----+----+              +------+            |            |                                       |            |                                       |            |                                       |            v                                       |    +---------------+  enqueue deep为deep+1的实体                         |    | handle entity |------------------------------>             |    +-------+-------+  set 已经入过队列 flag                         |            |                                   |            |                                   |            v                                   |    +---------------+  set 已经处理过结果 flag            |    | handle result |-------------------------->             |    +-------+-------+                         |            |                                 +------------+
Copier après la connexion


Stratégie de crawling (réponse anti-triche)

Afin de crawler certains sites web, la chose la plus redoutée est de bloquer les adresses IP et de bloquer Adresses IP. Mais sans agent, je ne peux que le faire. Par conséquent, la stratégie de crawl
est toujours très importante.

Avant d'explorer, vous pouvez rechercher sur Internet des informations pertinentes sur le site Web à explorer, voir si quelqu'un l'a déjà exploré et absorber son
expérience. Ensuite, je dois analyser attentivement moi-même la demande de site Web pour voir si leur demande de site Web apportera des paramètres
spéciaux ? Y aura-t-il des cookies associés au statut non connecté ? La dernière chose que j'ai essayée a été de définir une fréquence de capture aussi élevée que possible.

Si vous devez vous connecter au site Web pour être exploré, vous pouvez enregistrer un lot de comptes, puis simuler une connexion réussie et demander à votre tour

Ce sera encore plus gênant si la connexion nécessite un.
code de vérification , vous pouvez essayer de vous connecter manuellement puis enregistrer le cookie (bien sûr , si vous en avez la possibilité, vous pouvez essayer la reconnaissance OCR). Bien sûr, vous devez toujours prendre en compte les problèmes mentionnés dans le paragraphe précédent après vous être connecté. Cela ne signifie pas que tout ira bien
après la connexion. Certains sites Web verront leurs comptes bloqués s'ils sont explorés trop fréquemment après la connexion. dans.

Par conséquent, essayez de trouver une méthode qui ne nécessite pas de connexion. Il est difficile de se connecter à des comptes bloqués, de demander un compte et de changer de compte.

Source et profondeur des données d'exploration

La sélection initiale de la source de données est également importante. Ce que je veux faire, c'est explorer une fois par jour, je recherche donc un endroit où le site Web d'exploration est mis à jour quotidiennement

, afin que l'action d'initialisation puisse être entièrement automatique et que je n'ai fondamentalement pas besoin de la gérer . L'exploration démarrera quotidiennement
les mises à jour sont effectuées automatiquement.

La profondeur d'exploration est également très importante. Elle doit être déterminée en fonction du site Web spécifique, des besoins et du contenu qui a été exploré, et

capturer autant de données du site Web que possible.

Optimisation

Après l'exécution dans l'environnement de production, plusieurs endroits ont été modifiés.

La première est la file d'attente, qui a été transformée en une structure semblable à une pile. Parce que dans la file d'attente précédente, les entités de faible profondeur étaient toujours exécutées en premier

Cela entraînerait de plus en plus de contenu dans la file d'attente et occuperait beaucoup de mémoire. Maintenant, elle est transformée en structure de pile, et
récursion. est traité en premier. Complétez toute la profondeur d'une entité , puis traitez l'entité suivante. Par exemple, pour les 10 entités initiales (deep=1), la profondeur d'exploration maximale
est de 3. Il y a 10 sous-entités sous chaque entité, et la longueur maximale de leurs files d'attente est :

    队列(lpush,rpop)              => 1000个
    修改之后的队列(lpush,lpop)   => 28个
Copier après la connexion
ce qui précède Les deux méthodes peuvent obtenir le même effet, mais vous pouvez voir que la longueur de la file d'attente est très différente, nous avons donc changé pour la deuxième

méthode.

La limite de profondeur maximale est traitée lors de l'adhésion à la file d'attente. Si la profondeur maximale est dépassée, elle sera directement supprimée. De plus, la longueur maximale de la file d'attente

a également été limitée pour éviter des problèmes inattendus.

Code

Ce qui suit est un code long et ennuyeux. Au départ, je voulais le publier sur

github, mais je pensais que le projet était un peu petit, alors j'ai j'ai pensé le publier directement. J'espère que mes amis parleront des mauvaises choses, qu'il s'agisse du code ou du design.

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Combien de temps faut-il pour apprendre le robot d'exploration Python Combien de temps faut-il pour apprendre le robot d'exploration Python Oct 25, 2023 am 09:44 AM

Le temps nécessaire pour apprendre les robots d'exploration Python varie d'une personne à l'autre et dépend de facteurs tels que la capacité d'apprentissage personnelle, les méthodes d'apprentissage, le temps d'apprentissage et l'expérience. L'apprentissage des robots d'exploration Python ne consiste pas seulement à apprendre la technologie elle-même, mais nécessite également de bonnes compétences en matière de collecte d'informations, de résolution de problèmes et de travail d'équipe. Grâce à un apprentissage et à une pratique continus, vous deviendrez progressivement un excellent développeur de robots Python.

Pratique du robot d'exploration PHP : analyser les données sur Twitter Pratique du robot d'exploration PHP : analyser les données sur Twitter Jun 13, 2023 pm 01:17 PM

À l’ère du numérique, les médias sociaux sont devenus un élément indispensable de la vie des gens. Twitter en fait partie, avec des centaines de millions d'utilisateurs qui y partagent chaque jour diverses informations. Pour certains besoins de recherche, d’analyse, de promotion et autres, il est indispensable d’obtenir des données pertinentes sur Twitter. Cet article explique comment utiliser PHP pour écrire un simple robot d'exploration Twitter afin d'explorer certaines données liées aux mots clés et de les stocker dans la base de données. 1. TwitterAPI fournie par Twitter

Conseils pour les robots : comment gérer les cookies en PHP Conseils pour les robots : comment gérer les cookies en PHP Jun 13, 2023 pm 02:54 PM

Dans le développement de robots d'exploration, la gestion des cookies est souvent une partie essentielle. En tant que mécanisme de gestion d'état dans HTTP, les cookies sont généralement utilisés pour enregistrer les informations de connexion et le comportement des utilisateurs. Ils constituent la clé permettant aux robots d'exploration de gérer l'authentification des utilisateurs et de maintenir l'état de connexion. Dans le développement de robots PHP, la gestion des cookies nécessite de maîtriser certaines compétences et de prêter attention à certains pièges. Ci-dessous, nous expliquons en détail comment gérer les cookies en PHP. 1. Comment obtenir un cookie lors de l'écriture en PHP

Analyse et solutions aux problèmes courants des robots PHP Analyse et solutions aux problèmes courants des robots PHP Aug 06, 2023 pm 12:57 PM

Analyse des problèmes courants et solutions pour les robots PHP Introduction : Avec le développement rapide d'Internet, l'acquisition de données réseau est devenue un maillon important dans divers domaines. En tant que langage de script largement utilisé, PHP possède de puissantes capacités d’acquisition de données. L’une des technologies couramment utilisées est celle des robots d’exploration. Cependant, lors du développement et de l’utilisation des robots d’exploration PHP, nous rencontrons souvent des problèmes. Cet article analysera et proposera des solutions à ces problèmes et fournira des exemples de code correspondants. 1. Description du problème selon lequel les données de la page Web cible ne peuvent pas être correctement analysées.

Pratique efficace du robot d'exploration Java : partage des techniques d'exploration de données Web Pratique efficace du robot d'exploration Java : partage des techniques d'exploration de données Web Jan 09, 2024 pm 12:29 PM

Pratique du robot d'exploration Java : Comment explorer efficacement les données d'une page Web Introduction : Avec le développement rapide d'Internet, une grande quantité de données précieuses est stockée dans diverses pages Web. Pour obtenir ces données, il est souvent nécessaire d’accéder manuellement à chaque page web et d’en extraire les informations une par une, ce qui est sans doute une tâche fastidieuse et chronophage. Afin de résoudre ce problème, les utilisateurs ont développé divers outils de robots d'exploration, parmi lesquels le robot d'exploration Java est l'un des plus couramment utilisés. Cet article amènera les lecteurs à comprendre comment utiliser Java pour écrire un robot d'exploration Web efficace et à démontrer la pratique à travers des exemples de code spécifiques. 1. La base du reptile

Exploration efficace des données de pages Web : utilisation combinée de PHP et Selenium Exploration efficace des données de pages Web : utilisation combinée de PHP et Selenium Jun 15, 2023 pm 08:36 PM

Avec le développement rapide de la technologie Internet, les applications Web sont de plus en plus utilisées dans notre travail et notre vie quotidienne. Dans le processus de développement d’applications Web, l’exploration des données des pages Web est une tâche très importante. Bien qu’il existe de nombreux outils de web scraping sur le marché, ces outils ne sont pas très efficaces. Afin d'améliorer l'efficacité de l'exploration des données des pages Web, nous pouvons utiliser la combinaison de PHP et Selenium. Tout d’abord, nous devons comprendre ce que sont PHP et Selenium. PHP est un puissant

Pratique pratique du robot d'exploration : utiliser PHP pour explorer les informations boursières Pratique pratique du robot d'exploration : utiliser PHP pour explorer les informations boursières Jun 13, 2023 pm 05:32 PM

La bourse a toujours été un sujet de grande préoccupation. Les hausses, baisses et variations quotidiennes des actions affectent directement les décisions des investisseurs. Si vous souhaitez comprendre les derniers développements du marché boursier, vous devez obtenir et analyser les informations boursières en temps opportun. La méthode traditionnelle consiste à ouvrir manuellement les principaux sites Web financiers pour afficher les données boursières une par une. Cette méthode est évidemment trop lourde et inefficace. À l’heure actuelle, les robots d’exploration sont devenus une solution très efficace et automatisée. Ensuite, nous montrerons comment utiliser PHP pour écrire un programme simple d'analyse des actions afin d'obtenir des données boursières. permettre

Tutoriel sur l'utilisation de PHP pour explorer les critiques de films Douban Tutoriel sur l'utilisation de PHP pour explorer les critiques de films Douban Jun 14, 2023 pm 05:06 PM

À mesure que le marché du film continue de s'étendre et de se développer, la demande de films est également de plus en plus élevée. En ce qui concerne l'évaluation des films, Douban Film Critics a toujours été un choix plus faisant autorité et plus populaire. Parfois, nous devons également effectuer certaines analyses et traitements sur les critiques de films Douban, ce qui nécessite l'utilisation d'une technologie d'exploration pour obtenir des informations sur les critiques de films Douban. Cet article présentera un didacticiel sur la façon d'utiliser PHP pour explorer les critiques de films Douban pour votre référence. Obtenez l'adresse de la page des films Douban. Avant d'explorer les critiques de films Douban, vous devez obtenir l'adresse de la page des films Douban. D'ACCORD

See all articles