【 Python crawler】 4. Principes de base du crawler

SAP Swordsman 2021-10-29 06:34:38
python crawler principes base du

Principes fondamentaux des reptiles

Processus de base du crawler

1、Obtenir le code source de la page web: Mise en œuvre par la Bibliothèque des demandes ,urllib,requestsRéalisationHTTPDemande;

2、Extraire les informations: Analyse du code source de la page Web ,Extraire les données,Comme une expression régulière,beautiful soup,pyquery,IxmlAttendez.;

3、Enregistrer les données:Enregistrer àtxt,jsonOu la base de données;

Quelles données saisir?

  • HTMLCode;
  • JsonString(apiInterface,La plupart des terminaux mobiles sont dans ce format de données);
  • Binaires(Photos,Audio,Vidéo, etc.);
  • Fichiers avec différentes extensions (css,Javascript, Divers profils, etc. );

JavascriptRendre la page

AvecurllibOurequests Lors de la capture d'une page Web ,Le code source obtenu est différent de ce que vous voyez dans votre navigateur.

De plus en plus de pages Web adoptent ajax、Module frontal pour la construction, Toute la page est JavascriptRendu de.Analyse requiseajaxInterface,Ou utiliserselenium Simulation de mise en œuvre de bibliothèques égales JavascriptRendre.

【Rendu de page】

Le rendu de page est le moteur de rendu du navigateur quiHTML Code basé sur CSSProcédure d'affichage des règles définies dans la fenêtre du navigateur.

Les principes généraux de fonctionnement sont les suivants: :

  • L'utilisateur entre l'URL ,Le navigateur envoie une demande au serveur,Le serveur retournehtmlDocumentation;
  • Le moteur de rendu commence à charger htmlCode,Et vaHTML Étiquettes converties en DOMNoeud,GénérerDOMArbre;
  • Si l'extérieur est référencé CSSDocumentation,Pour envoyerCSSDemandes de documents, Le serveur retourne le fichier ;
  • Si l'extérieur est référencé JSDocumentation,Pour envoyerJSDemandes de documents,Le serveur retourne le fichier et commence à fonctionner;
  • Le moteur de rendu continue de charger html Code de la Section ,Et commence à analyser ce qui est retourné plus tôtCSSDocumentation,Et puis selonCSSLe sélecteur calcule le style du noeud, Créer un arbre de rendu ;
  • Appel récursif depuis le noeud racine ,Calculer la taille de chaque élément、Emplacement, etc,Donnez à chaque noeud les coordonnées exactes qui devraient apparaître à l'écran;
  • SibodyRessources d'image référencées dans,Demande au serveur immédiatement,Le moteur de rendu n'attendra pas que l'image soit téléchargée,Au lieu de cela, continuez à rendre le code suivant;
  • Le serveur retourne le fichier image ,Parce que l'image occupe une certaine surface,Influence sur la typographie des paragraphes suivants,Le moteur doit donc revenir en arrière pour rendre cette partie du Code;
  • SiJS Exécuté dans le script style.display=”none”, Mise en page modifiée ,Le moteur doit aussi rendre cette partie du Code;
  • Jusqu'à ce que la page soit rendue .

cookies

cookiesCôté navigateur,.Lorsque vous accédez à une page web dynamique, le navigateur l'accompagne automatiquement et l'envoie au serveur, Le serveur est identifié par cookies Et identifier l'utilisateur , Déterminer s'il est connecté ,Puis renvoie la réponse correspondante.

Reptile agent

Représenter les utilisateurs du Réseau pour obtenir des informations sur le réseau;

Rôle de l'Agence : Se briser soi - même IPRestrictions d'accès, Ressources internes de la Communauté d'accès ,Accès plus rapide, Cacher la réalité IP;

L'agent crawler peut obtenir un meilleur effet de rampe(Empêcher le blocage ou l'entrée d'un code de vérification pour se connecter);

Vérifiezrobots.txt

RobotsAccord( Aussi connu sous le nom de protocole crawler 、Protocole robotique, etc.)Son nom complet est“Critères d'exclusion des reptiles web”(Robots Exclusion Protocol),Le site estRobotsLe Protocole indique aux moteurs de recherche quelles pages peuvent être récupérées,Quelles pages ne peuvent pas être récupérées.

Quand une araignée de recherche visite un site,Il vérifie d'abord s'il existe sous la racine du siterobots.txt,Si elle existe,.Le robot de recherche détermine la portée de l'accès en fonction du contenu du fichier;Si le fichier n'existe pas,Toutes les araignées de recherche auront accès à toutes les pages du site qui ne sont pas protégées par mot de passe.

 

Attaque et défense des reptiles

 

版权声明
本文为[SAP Swordsman]所创,转载请带上原文链接,感谢
https://pythonmana.com/2021/10/20211029063157198G.html

  1. Python,前缀后缀相同时合并
  2. 关于#python#的问题:python
  3. 關於#python#的問題:python
  4. Python,前綴後綴相同時合並
  5. Questions sur # # Python #: Python
  6. Python, préfixe et suffixe combinés en même temps
  7. python manage.py shell无法运行,
  8. python manage.py shell無法運行,
  9. Le shell Python manage.py ne fonctionne pas,
  10. python中使用vscode Import 'matplotlib.pyplot' could not be resolved from source 问题
  11. [Chapter 11 of the full version] Python advanced crawler practice - system master Po anti climbing skills challenge high salary
  12. L'utilisation de vscode Import 'matplotlib.pyplot' en python ne peut pas être résolue à partir du problème source
  13. Python fusionne les deux listes et supprime les éléments dupliqués lors de la fusion
  14. [JS Reverse AES Reverse Encryption] python crawler combat, les jours sont de plus en plus décisifs
  15. 30 jeux Python. Je peux jouer à la pêche au travail pendant une journée.
  16. J'a i collecté un nouveau hit de liste en python, donc c'est un secret que quelqu'un d'autre peut devenir un magnat des médias!
  17. J'a i utilisé Python pour ramper à travers 5000 belles photos de papier peint, un jour oublié Premier amour!
  18. [Python planting system] the best green plant for your girlfriend. Girls love it when they see it! Attachment: should be able to feed - right??!
  19. [Python love guide] two small programs for sweetness burst table are released! Afraid you can't find someone?
  20. J'ai utilisé Python pour ramper 1000 lettres d'amour pour aider mon colocataire à exprimer les fleurs de classe, mais les inverser et les inverser... C'est le secret ultime des fleurs de classe!
  21. J'ai utilisé Python pour me connecter à la plus grande plate - forme de jeu au monde, et à quel point le cryptage steam est intelligent [code source inclus]
  22. python中列表转为矩阵后无法进行矩阵的乘法运算
  23. Python crawler Development and Learning full tutoriel 2nd Edition, banggan 100000 words [recommended Collection]
  24. Python crawler haut de gamme: microstore confus anti - décryptage
  25. La multiplication de la matrice ne peut pas être effectuée lorsque la liste est convertie en matrice en python
  26. Introduction to operators in python (Part 1)
  27. Are the dictionaries in Python ordered
  28. Introduction to dictionaries in Python
  29. List introduction in Python
  30. pandas比较两个dataframe特定数据列的数值是否相同并给出差值:使用np.where函数
  31. Python使用matplotlib绘制透明背景的可视化图像并保存透明背景的可视化结果(transparent background)
  32. Python self study notes -- basic grammar
  33. Python utilise matplotlib pour dessiner une image visuelle de l'arrière - plan transparent et enregistrer les résultats visuels de l'arrière - plan transparent
  34. Pandas compare les valeurs de deux colonnes de données spécifiques à dataframe et donne des valeurs de voyage: en utilisant la fonction np.where
  35. Comment configurer une application ASGI Django avec Postgres, nginx et uvicorn sur Ubuntu 20.04
  36. What are the advantages of Python and how to get started quickly
  37. Python self study notes -- basic data types
  38. Python code reading (Chapter 14): List Union
  39. Analyse statistique de la fonction de données des essais aléatoires Python
  40. Alien invasion project in Python application -- Aliens (Part 2)
  41. Python code reading (Chapter 14): List Union
  42. Lecture du Code Python (article 25): diviser les chaînes multilignes en listes
  43. Python self study notes -- operators
  44. Formation python - différences entre http et HTTPS
  45. Implementation of automatic timing comment function on Python CSDN platform
  46. python+tkinter+treeview子控件快捷键
  47. Raccourcis clavier pour les sous - contrôles Python + tkinter + treeview
  48. Analyse des données Python
  49. python+tkinter+treeview子控件快捷鍵
  50. Devine si je peux attraper Maotai avec la programmation python? Tout est ouvert à github
  51. À propos de pygame.display.set in Python Un petit problème avec mode ()
  52. Implementation of automatic timing comment function on Python CSDN platform
  53. python:dataframe进行iteritem遍历时如何将输出结果按照列分别输出为该列最后一行
  54. python:dataframe進行iteritem遍曆時如何將輸出結果按照列分別輸出為該列最後一行
  55. Python: comment le dataframe affiche les résultats de sortie par colonne à la dernière ligne de la colonne lors de la traversée de l'itemitem
  56. Écrivez un gadget de bureau pour votre fille préférée en python et elle dit que c'est génial!
  57. Introduction to closures in Python 3
  58. Global / nonlocal usage in Python 3
  59. Introduction to context manager in Python 3
  60. Common standard library random, python introductory tutorial 5 or 6 questions a day | Python skill tree