0x00
Un robot d’indexation de toile (également appelé araignée de toile, bot de toile, plus communément appelé chasseur de toile dans la communauté FOAF) est un programme ou un script qui extrait automatiquement des informations sur le World Wide Web selon certaines règles. D’autres noms moins couramment utilisés incluent fourmis, auto-index, simulateurs ou vers.
0x01
Pour faire simple, les robots d’exploration recueillent les données selon leurs propres règles, analysent les données capturées, puis obtiennent des données utiles pour eux-mêmes.
0x02
L’optimisation des robots d’indexation web peut être divisée en deux étapes :
1 : Optimiser lors du scraping des données ;
2 : Optimiser le traitement des résultats d’apprentissage ;
Aujourd’hui, nous parlons juste de l’optimisation dans le processus de scraping !
0x03
J’ai résumé quelques points sur l’optimisation dans le processus de crawling :
1 : Il peut être optimisé sur l’adresse physique, par exemple : le serveur de ressources cible est l’hôte Tencent Cloud à Shanghai, nous essayons de choisir le serveur dans la même région, c’est-à-dire celui de la région de Shanghai, ne choisissez pas celui de Pékin, Qingdao et d’autres régions, mais essayez aussi de choisir le serveur dans la même salle informatique IDC, nous savons que ce site de ressources est le serveur de Tencent Cloud, nous essayons de mettre le robot d’exploration sur le serveur Tencent Cloud, pas sur le serveur Alibaba Cloud !
2 : Choisissez un réseau stable et rapide, les crawlers ont généralement des exigences élevées en matière de qualité réseau, essayez de ne pas utiliser le réseau domestique, choisissez le réseau de l’entreprise ou achetez un serveur pour capturer les données.
3 : Choisissez un langage de crawler plus efficace, j’ai entendu dire que Python est meilleur pour les crawlers, mais je ne l’ai pas utilisé, et je le testerai plus tard, aujourd’hui, je l’explique principalement en .net.
0x04
Pour des choses comme l’achat rapide, les exigences pour la vitesse de saisie sont élevées, on peut décrire cela comme une question de temps, tôt pour obtenir les données, augmenter les chances de saisie ; voici que j’ai écrit une démo avec la console, le test de capture des données de ce site, comme montré dans la figure ci-dessous :
(Plus le temps est court, plus c’est rapide)
Le classement des données ci-dessus :1 : Code optimisé nativement, 2 : Code natif, 3 : DLL plug-in tiers (packages)
0x05
Pourquoi les plugins tiers (packages) prennent-ils le plus de temps ? Les plug-ins tiers sont en réalité un grand nombre d’encapsulations de code natif, un grand nombre de jugements logiques, et sont relativement polyvalents, ce qui peut entraîner une lenteur de l’exploration rapide.
Voici le code natif :
Le code natif n’est que quelques lignes au-dessus.Le temps moyen reste de 184 millisecondes,Plus le code est simple, plus il est difficile à optimiserPensez-vous que comment le code ci-dessus peut-il être optimisé pour atteindre un temps moyen de 99 millisecondes ?La différence de vitesse est doublée !
0x06
Si le serveur de ressources cible supporte la compression gzip, lorsque nous accédons au site web et que le navigateur le demande, l’en-tête de requête aura les paramètres suivants :
Paramètres de l’en-tête de réponse :
Introduction à « Accept-Encoding » : https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Encoding
En termes simples :
Le client déclare :Je supporte l’algorithme de compression « gzip, deflate, sdch, br », vous pouvez utiliser ce que vous voulez pour renvoyer des données.
Le serveur a déclaré :Je supporte l’algorithme de compression gzip, donc je vais utiliser l’algorithme gzip pour compresser les données vers vous
Le client déclare :D’accord, alors je vais déchiffrer les données reçues avec l’algorithme gzip
l’algorithme gzip, qui peut compresser les données transmises et réduire considérablement le contenu transmis, améliorant ainsi l’efficacité des requêtes, le code optimisé est le suivant :
Bien que ce soit un détail mineur, on peut dire que l’efficacité est doublée ! C’est équivalent aux données que vous avez collectées en deux jours, et maintenant elles peuvent être collectées en une seule journée, et cet article est dédié aux amis qui apprennent à ramper.
Note : L’algorithme de compression gzip n’a rien à voir avec le langage de programmation !
Enfin, joignez le code source :
Touristes, si vous voulez voir le contenu caché de ce post, s’il vous plaît Répondre
|