Un billet de blog de 10 000 mots vous emmène dans la fosse crawler ce chemin de non - retour (qu'hésitez - vous encore à monter dans la voiture) [- - - - - - - - - - - - rester debout tard -

Solitaire 2021-08-31 04:51:02 阅读数:985

billet blog mots vous emm

Récemment,Beaucoup de fans m'ont demandé en privé——Qu'est - ce qu'un reptile?Apprenez par où commencer les reptiles?

En fait...,Ce que je veux dire, c'est qu'une fois, quand j'étais petit blanc, un gros taureau m'a dit——La plupart du temps, nous avons un cœur qui veut apprendre de nouvelles connaissances,Mais toujours effrayé par l'ignorance de ce que vous voulez apprendre,C'est aussi l'échec de la plupart des gens et même le regret à vie:Parce qu'ils n'ont jamais commencé!

Pour emprunter les mots d'un aîné qui m'a emmené dans la fosse il y a quelques années——La fosse est juste devant toi,N'hésitez pas à errer,Soyez audacieux:Un pas en avant,Dans ce trou,Une tête imprudente, c'est de se précipiter vers l'avant,N'y pense pas trop.,Ne regarde pas en arrière,Un jour——>Tu seras aussi l'aîné de quelqu'un d'autre!

Insérer la description de l'image ici


La soupe de poulet a été servie avec succès aujourd'hui,Destination:your heart!

Retour à la question principale~~~
L'intention initiale du blogueur d'écrire cet article est également d'utiliser cet article pour atteindre un effet:

Conduire ceux qui veulent apprendre les reptiles mais n'osent pas commencer,Ou les chaussures pour enfants qui s'intéressent aux reptiles et veulent apprendre cette technique——Officiellement dans la fosse!!!


<-Tout d'abord,,Je vais répondre à la première question——Qu'est - ce qu'un reptile?->

.En fait, vous pouvez aussi Baidu à une grande définition officielle,Mais ceux qui ne sont pas amicaux avec les nouveaux,Crawler!Conclusion:C'est**Demande d'envoi du navigateur analogique,Obtenir une réponse!**
Insérer la description de l'image ici

Quant à la deuxième question, :Apprenez par où commencer les reptiles? Vous n'avez pas besoin de moi pour répondre à cette question tant que vous n'avez pas vraiment lu ce billet. .

Vers les reptiles De Ensemble de connaissances essentielles sur les reptiles !

Insérer la description de l'image ici

1.Le concept de reptile

(1)Le concept de reptile( Définition de la spécialisation ):

Les reptiles Web sont aussi appelés araignées Web. , Il se réfère spécifiquement à une catégorie Lot automatique Programme de téléchargement de ressources réseau , C'est une définition plus familière .
Une définition plus professionnelle et plus complète est : Le crawler est Camouflage Devenir un programme d'interaction de données entre le client et le serveur .
Insérer la description de l'image ici

(2) Applications des reptiles :

  1. Acquisition de données
    L'ère du Big Data approche , Les données sont le noyau , Les données sont la productivité , De plus en plus d'entreprises se concentrent sur la collecte de données sur les utilisateurs , Et la technologie crawler est un moyen important de recueillir des données .

    Par exemple,:Obtenir des commentaires sur Weibo(Apprentissage automatique suivi de l'opinion publique)
    Saisir les informations de recrutement sur le site Web de recrutement(Analyse des données,Excavation)
    Baidu News website
    
  2. Moteur de recherche
    Baidu, Les moteurs de recherche comme Google sont basés sur la technologie crawler .(PS: Le grand reptile. !)

     Dépôt de connaissances :
    C'est un gros titre célèbre qui a fait fortune avec des reptiles. !!!
    
  3. Opération analogique
    Les Crawlers sont également largement utilisés pour simuler les opérations de l'utilisateur , Robot d'essai , Robot d'irrigation, etc. .

  4. Tests logiciels
    Tests automatisés pour les reptiles
    Entomologiste

  5. Sécurité des réseaux
    Bombardement par SMS
    webAnalyse de vulnérabilité
    Insérer la description de l'image ici

(3)Classification des reptiles:

Selon différents critères , La classification des reptiles varie également , Les trois principaux critères de classification communs et leur classification sont les suivants: :

Le premier:Selon Nombre de rampants Classification différente :
Reptile générique: Un crawler, généralement un moteur de recherche. .
Universal crawler est un système de capture de moteur de recherche (baidu,goole,yahooAttendez.)Un élément important . L'objectif principal est de télécharger les pages Internet localement , Créer une sauvegarde miroir du contenu Internet .( Mais un gros problème est qu'ils ont de grandes limites. : La plupart du contenu est inutile —— Différents objectifs de recherche , Même contenu retourné !)

Focus crawler: Crawler spécifique au site .
Est un crawler Web orienté vers des besoins spécifiques , Ce qui le distingue du moteur de recherche générique crawler :
Focus crawler traite et filtre le contenu lors de la mise en œuvre de la capture de page , Assurez - vous de ne saisir que les informations relatives à la demande !


Deuxième:Selon Obtenir des données à des fins Classification:
Reptiles fonctionnels:
Par exemple,,Vote,- Oui.…
Données incrémentales crawler
Comme l'information sur le recrutement…


Troisième:SelonurlSi l'adresse et le contenu de la page correspondante ont changé, Les rampes incrémentales de données peuvent être divisées en :
①Basé sururlChangement d'adresse,Le contenu change avec le crawler incrémental de données;
②urlAdresse inchangée,Rampes incrémentales de données pour les changements de contenu.

Insérer la description de l'image ici

(4) Processus général de développement des reptiles :

① L'accès le plus simple aux données d'une seule page :
url——>Envoyer la demande,Obtenir une réponse——>Extraire les données——>Enregistrer les données
② Ramper les données multi - pages :
Envoyer la demande,Obtenir une réponse——>ExtractionurlAdresse,Continuez à demander

 Mettre l'accent sur le processus de développement des reptiles

 Processus du moteur de recherche

 Processus général de développement des reptiles

(5) Points clés et difficiles du développement des reptiles :

Les difficultés des reptiles sont principalement divisées en deux directions :

  1. Accès aux données(PS: Qu'est - ce qu'il y a de si dur pour lui? !)
    Les ressources publiques du réseau sont destinées aux utilisateurs , Pour éviter d'être ramassé par des reptiles , Le serveur configure beaucoup de tests Turing , Empêcher les rampes malveillantes des rampes ,C'est - à - dire Mesures anti - escalade . Les ingénieurs du développement des reptiles , Ces mesures anti - escalade doivent être prises . Nous développons des reptiles , Une grande partie du travail consiste à gérer ces contre - mesures .
  2. Vitesse d'acquisition
    L'ère du Big Data, Une énorme quantité de données est nécessaire , Un niveau de 10 millions , Même des centaines de millions. . Si la vitesse d'acquisition ne suit pas ,Ça prend trop de temps., Les exigences commerciales ne sont donc pas respectées. . En général, nous adoptons la concurrence et la distribution pour résoudre les problèmes de vitesse . C'est un autre centre de gravité dans le développement des reptiles .
Knowledge point supply station : robotsAccord:Le site estrobotsAccord, Dites - nous quelles pages les moteurs de recherche peuvent saisir ,Quelles pages ne peuvent pas être récupérées, Mais ce n'est qu'une contrainte morale. .

Insérer la description de l'image ici

2.HTTPEtHTTPS

Insérer la description de l'image ici

 Knowledge point supply station :
Architecture adoptée par la plupart des applications commerciales :
1.c/s C'est - à - dire: client(Client) server(Serveur)
2.b/s C'est - à - dire: browser(Navigateur) server(Serveur)
3.m/s C'est - à - dire: moblie(Mobile end) server(Serveur)
Ci - dessus sont collectivement appelés client et serveur !!!

Insérer la description de l'image ici
Un crawler est un programme qui se fait passer pour un client pour interagir avec un serveur. .Alors, Comment le client et le serveur interagissent - ils? ? Comme nous, chinois, communiquons en chinois. , Sur la grammaire chinoise , On peut communiquer normalement. . Si le client et le serveur ne sont pas unifiés , C'est pas une blague. , Il y a donc beaucoup de protocoles dans la transmission réseau ,HTTP C'est l'un d'eux. .

(1)HTTPAccord

Réseau d'interconnexion actuel 90% Les transmissions réseau sont basées sur httpAccord(Supplément:httpLe Protocole est un Protocole de couche d'application).(Attention!: Avant de ramper dans les données désirées , Assurez - vous de préciser quel protocole il utilise !Bien que90%Tout est basé surhttpAccord, Mais il y en a encore. 10% D'autres protocoles sont utilisés ,Par exemple,: Le rideau peut prendre websocketAccord!Dans ce cas, Nous prenons les reptiles traditionnels et nous ne pouvons pas les atteindre. .)

HTTP- Oui.Hyper Text Transfer Protocol(Protocole de transfert hypertexte)Abréviation de, Est utilisé à partir du World Wide Web (WWW:World Wide Web ) Protocole de livraison du serveur pour le transport hypertexte vers le navigateur local .

HTTPEst basé surTCP/IP Protocole de communication pour la transmission de données (HTML Documentation, Fichier image, Résultats de la recherche, etc).
Attention!:TCP/IP A une propriété orientée connexion !(Le sens: Assurer l'intégrité des données )
Regardons de plus près TCP/IP Trois poignées de main dans le Protocole de communication quatre vagues :
Insérer la description de l'image ici

  • Trois poignées de main pour établir une connexion:
    Le client dit :- Salut.,Serveurgirl! Je veux établir une connexion avec vous .(Dis bonjour.)
    Théorie du serveur: D'accord. , Je t'écoute. .
    Le client dit :C'est gentil., Commençons l'échange de données. ( Honte! ).
    .
    .( Fais quelque chose de honteux. ing,Pour l'échange de données)
    .
  • Déconnecter quatre fois :
    Le client dit : J'ai fini d'interagir avec vous. , Débranchons - nous. !(Dis bonjour.)
    Théorie du serveur: Tu es sûr de te déconnecter? ?(Non.)
    Le serveur a dit : Alors déconnectez - vous. !
    Le client dit :D'accord., Alors je suis déconnecté. !

(2)HTTPProcessus de demande:

Nous utilisons des navigateurs pour rechercher des choses tous les jours ,L'entrée estURL, Le navigateur le convertit automatiquement en HTTPAccord.

Une fois.http Le processus de base de la demande est le suivant: , Un client lance une fois au serveur Demande(request), Le serveur retourne au client une fois reçu Réponse(response). Donc, pour une fois, http La demande comprend la demande et la réponse. .

Envoyer par le NavigateurhttpProcessus de demande:

1.Résolution des noms de domaine -->
2.LancementTCPDe3Poignée de main secondaire -->
3.ÉtablissementTCPDémarrer après la connexionhttpDemande -->
4.Réponse du serveurhttpDemande,Le navigateur obtienthtmlCode -->
5.Résolution du NavigateurhtmlCode,Et demandehtmlRessources dans le Code(Par exemple:js、css、Photos, etc.) -->
6.Le navigateur rend la page à l'utilisateur.
Knowledge point supply station :
Dans la vérification du bouton droit de la page Web Network->Name->Request Headers view parsedEn bas.
DeConnection:keep-alive Toujours connecté , Pas besoin de serrer la main trois fois et de faire signe quatre fois. !

Insérer la description de l'image ici

Contenu obtenu par le Navigateur (elementsLe contenu de)Contient:urlRéponse à l'adresse+js+css+pictures Le crawler obtient :urlRéponse à l'adresse Contenu et elements C'est différent. , Lors de l'extraction des données ,Doit être basé sururl Réponse à l'adresse !

(3)URL( Contenu de la boîte de recherche du Navigateur !)

EnvoyerhttpSur demande,Adoptionurl Localiser les ressources du réseau .

URL(Uniform Resource Locator),Localisateur de ressources unifié en chinois. Est l'adresse utilisée pour identifier une ressource . C'est ce qu'on appelle l'URL. .Par ici.URLPar exemple,IntroductionURLComposition des composantes:
Accord+Nom de domaine(Port par défaut80)+Chemin+Paramètres

Attention!:
1.http Le numéro de port du Protocole est par défaut 80Peut ne pas écrire;https Le numéro de port du Protocole est par défaut 443Peut ne pas écrire(Attention!: Le nom de domaine détermine quel ordinateur est ; Et le numéro de port est utilisé pour déterminer quelle application est cet ordinateur !)
2. Les noms de domaine sont généralement IPCartographie des adresses, Le numéro de port est généralement par défaut et n'est pas écrit . Quand on cherche habituellement , Comme entrer à Baidu :https://www.baidu.com/,Ici.https Le numéro de port par défaut du Protocole est 443, C'est pas écrit. !

Insérer la description de l'image ici

(4)HTTPFormat de la demande

Client( Nos utilisateurs )Envoyer unHTTP Le message de demande au serveur comprend les sections suivantes: :Ligne de demande,En - tête de la demande,Lignes vides et données de demande.

Présentation générale:
Insérer la description de l'image ici
Attention!: De la ligne demandée dans l'image ci - dessus URLOui.(2)URLChemin dans!
Insérer la description de l'image ici

1.Méthode de demande:

(1)Classification

SelonhttpCritères,http Les demandes peuvent utiliser plusieurs méthodes de demande .

Cinq méthodes de demande :OPTIONS,PUT,DELETE,TRACEEtCONNECTMéthodes.

(2) Explication de la classification

Méthodes courantes - Oui. GETEtPOST.

  • GET
    1. Principalement responsable de l'obtention des données du serveur
    2.URL Ajouter un paramètre de requête , Afficher dans la barre d'adresse
    3. Limite de la chaîne de requête 1024Octets
    QuePOST Plus efficace et plus pratique .

  • POST
    1. Responsable de la soumission des données au serveur
    2.Pas de limite de taille( Mais en général, 2M)
    Que’GET’ Grande quantité de données transmises ,Haute sécurité.

(3)

Insérer la description de l'image ici

2.En - tête de la demande:

Insérer la description de l'image iciInsérer la description de l'image iciInsérer la description de l'image ici

3.HTTPCorps de la demande(Demande de données)

Le corps de la demande est généralement utilisé POST Méthode d'envoi des données ,GET La méthode n'a pas de corps de requête .

Le corps de la requête est séparé de l'en - tête du message ci - dessus par une ligne vide .

On va faire un tour. ! Maintenant que le format de demande est OKC'est, Ce qui signifie que nous pouvons faire comprendre au serveur ce que nous disons ; Ce qu'il faut faire, c'est que nous comprenions ce que le serveur nous a dit. .

(6)HTTP Format de réponse

HTTP La réponse se compose également de quatre parties ,Respectivement.:Ligne de statut(Ligne de réponse)、En - tête du message、 Lignes vides et corps de réponse .

Insérer la description de l'image ici Présentation générale:
Insérer la description de l'image ici

1.HTTPCode d'état de réponse:( C'est familier. 404Oh, mon Dieu.!)

Lorsque le client lance une demande au serveur , Le serveur contiendra un en - tête de réponse retourné HTTPCode d'état( Nous pouvons déterminer si le Code crawler actuel est disponible en jugeant ce code d'état pendant le combat crawler. OK!).

HTTP Le Code d'état de Trois chiffres Pour exprimer , Le type de code d'état est représenté par le premier chiffre , En général, il existe cinq types :

Insérer la description de l'image iciAttention!: La redirection équivaut à un transfert de médiation .(Tous lesHTTP Code d'état de la réponse !

2.HTTPEn - tête de réponse:

Insérer la description de l'image ici


(7)Résumé:

1.HTTPRésumé du processus:

Insérer la description de l'image ici

2.HTTPCaractéristiques du Protocole:

HTTP Trois précautions :

  • HTTPN'est pas connecté:Aucune connexion signifie limiter le traitement d'une seule demande par connexion.Le serveur a traité la demande du client,Après avoir reçu la réponse du client,Déconnecter.Cela permet d'économiser du temps de transmission.

  • HTTP Indépendant des médias :Cela signifie, Tant que le client et le serveur savent comment traiter le contenu des données , Tout type de données peut être HTTPEnvoyer.

  • HTTPEst apatride:HTTPLe Protocole est apatride.L'absence d'état signifie que le Protocole n'a aucune capacité de mémoire pour le traitement des transactions..L'absence d'état signifie que si des informations préalables sont nécessaires pour un traitement ultérieur,Il doit être retransmis.,Cela peut entraîner une augmentation de la quantité de données transférées par connexion.D'un autre côté,Il répond plus rapidement lorsque le serveur n'a pas besoin d'informations précédentes.

Sans statutHTTP Détails officiels :
HTTP L'état apatride de HTTP Le Protocole n'a pas de mémoire pour la transaction , Cela signifie que le serveur ne sait pas quel est l'état du client .Quand je
Après avoir envoyé une demande au serveur , Le serveur résout cette requête , Puis renvoie la réponse correspondante , Le serveur est responsable de ce processus , Et ce processus est complet
Indépendant, Le serveur n'enregistre pas les changements d'état avant et après , C'est - à - dire qu'il manque un enregistrement d'état . Cela signifie que si l'information précédente doit être traitée ultérieurement , Doit être lourd
Passe, Cela a entraîné la nécessité de transmettre des demandes en double antérieures supplémentaires. , Pour obtenir une réponse ultérieure , Mais ce n'est évidemment pas ce que nous voulons. . Pour garder
Statut postérieur, Nous ne pouvons pas retransmettre toutes les demandes précédentes. , C'est un gaspillage de ressources. , Pour cette page qui nécessite une connexion utilisateur , Encore plus difficile. .
Les deux sont utilisés pour maintenir HTTP La technologie de l'état de connexion apparaît , Ce sont des sessions et Cookies. Voici comment !
Attention!: L'anarchie signifie , Par exemple, vous avez entré votre mot de passe dans une autre page Web et vous êtes connecté. QQEspace,Mais parce queHTTPEst apatride, C'est pour ça que tu es encore là. QQ Connectez - vous dans l'espace QQ Le compte et le mot de passe doivent être saisis à nouveau dans la boîte aux lettres. , L'état de connexion n'est pas mémorisé . Mais il peut être résolu en utilisant la technologie de session .

3.HTTPSAccord:

Version améliorée HTTP, Un chasseur parmi les coqs. !!!
HTTPS(Nom complet:Hyper Text Transfer Protocol over Secure Socket Layer Ou Hypertext Transfer Protocol Secure, Protocole de sécurité de la transmission hypertexte ),C'est pour la sécurité.HTTPAccès,En brefHTTP Version sécurisée de !

httpLe Protocole est basé surtcp/ipAccord,EthttpsOui.http Sur la base de l'Accord , Encore une couche. SSL/TLSAccord,Les données sont chiffrées pendant la transmission.

Attention!:HTTPSLe port par défaut pour le Protocole est443.

http Parce que c'est du texte clair. ,Ethttps C'est une transmission cryptographique. ,Alors...HTTPSQuehttpPlus sûr,
Mais les performances sont faibles , Parce que le décryptage prend du temps !

3.RésolutionhttpSans statut De Technologie de session

httpEst apatride, Comment le serveur distingue - t - il les demandes successives du même utilisateur? , C'est la technologie de session. :cookieEtsession.

(1)Cookie

Cookie Parfois au pluriel Cookies.
Se réfère à certains sites Web pour identifier les utilisateurs 、En cours session Suivi et stockage dans Sur le terminal local de l'utilisateur Données( Habituellement chiffré ). Les dernières spécifications sont: RFC6265 .

Cookie Peut être interprété comme un justificatif d'identité

  • 1. Est en fait un message spécial envoyé par le serveur au client ,
  • 2. Ces informations sont stockées dans un fichier texte sur le client ,
  • 3. Le client apporte ces informations spéciales chaque fois qu'il envoie une demande au serveur .
  • 4. Le serveur reçoit CookiePlus tard, Vérifiera CookieInformations sur, Pour identifier l'utilisateur .

Pourquoi utiliser dans les reptiles cookie?

  1. PrendscookieAvantages:
    ① Accès à la page de connexion .
    ② Un navigateur normal est sûr d'apporter une requête au serveur cookie( À l'exception de la première demande ), Il est donc possible que le serveur adverse cookie Pour déterminer si nous sommes un reptile , Qui peut jouer un certain rôle de contre - escalade .
  2. Prendscookie Le mal de :
    ①Un ensemblecookie Correspond souvent à l'information d'un utilisateur , Les demandes trop fréquentes sont plus susceptibles d'être identifiées comme des Crawlers .
    ② Généralement résolu par plusieurs comptes .

(2)Session

Session, Le chinois est souvent traduit en session , Il s'agit d'une série d'actions qui ont un début et une fin. /Message, Par exemple, une série de processus allant de la prise d'un téléphone et de la composition à la fin d'un appel peut être appelée session. Ce mot est utilisé dans tous les domaines .

Et nousweb& Le domaine des reptiles , C'est ce que ça veut dire. , Une fenêtre de navigateur entre l'ouverture et la fermeture .

Session Le but de , Entre l'ouverture et la fermeture du navigateur par un client , Toutes les demandes lancées peuvent être identifiées comme un seul utilisateur . Et la façon de le faire est , Quand un client ouvre son navigateur et commence à visiter le site ,Génère uncookie,SessionID(Attention!:SessionIDInclus danscookieMoyenne),C'estID Chaque visite , Et le serveur reconnaîtra ceci SessionID Et sera en rapport avec SessionID Les données pertinentes sont sauvegardées sur le serveur . Ainsi, la reconnaissance de l'état du client est réalisée .Donc,sessionEst basé surcookieDe!

SessionAvecCookieAu contraire.,Session Est les données stockées sur le serveur , Transmis uniquement par le client SessionId Pour juger ,Donc, par rapport àCookie,Session Plus de sécurité .

En généralSessionID Est éliminé lorsque le navigateur est fermé , Ou le serveur vérifiera Session Niveau d'activité ,Par exemple30 Une minute. SessionID Pas actif. , Il sera également reconnu comme invalide. .

sessionLe rôle de—— Conservation des sessions pour la mise en œuvre des clients et des services !
Session(Statut)Tiens bon.:①Enregistrercookie;② Implémenter une longue connexion au serveur .

(3)cookieEtsessionLa différence entre:

  1. cookieLes données sont stockées dans le navigateur du client,sessionLes données sont placées sur le serveur;
  2. cookiePas très sûr.,Quelqu'un d'autre peut analyser lescookieEt procédercookieTricher;
  3. sessionSera sauvegardé sur le serveur pendant un certain temps,Quand les visites augmentent, Comparera les performances du serveur occupé ;
  4. UniquecookieLes données sauvegardées ne peuvent pas dépasser4k,De nombreux navigateurs limitent un site à un maximum d'enregistrements20- Oui.cookie.

(4) Pour comprendre un texte aussi ennuyeux. :

Lors de la première connexion de l'utilisateur :
Génère un sessionTableau,À l'intérieur.key- Oui.hash Données générées ,value Est une série d'informations .
En même temps, un fichier texte est généré localement sur le client cookie,Il contient:sessionid,Et celui - cisessionid La valeur de est dans le serveur hashLa formekey.
Insérer la description de l'image ici
Lorsque l'utilisateur se connecte à nouveau :
Sera transporté automatiquement sessionid Et sa valeur , Cette valeur correspond à hashLa formekeyComparaison, Déterminer si l'utilisateur s'est connecté avec succès ,Si ça marche, Obtenir les données de connexion de l'utilisateur , Puis retournez à l'interface demandée par l'utilisateur .
Insérer la description de l'image ici

(5) Putain, regarde ça. Cookies Structure des attributs pour :

(ParQQ Exemple d'espace !)

F12 Ouvrir l'outil de développement du Navigateur , Puis suivez les étapes comme indiqué Cookies:( Vous pouvez voir qu'il y a beaucoup d'entrées , Chacune de ces entrées peut être appelée Cookie.)
Insérer la description de l'image ici

Nom de la propriété Explication de la valeur de l'attribut
Name LeCookieNom de. Une fois créé ,Impossible de modifier!
Value LeCookieValeur de.Si la valeur estUnicodeLes caractères, Codage des caractères requis ; Si la valeur est binaire ,Doit être utiliséBASE64Codage.
Domain Peut accéder à CookieNom de domaine pour.
Max Age LeCookie Temps de défaillance ,UnitésS,D'habitude etExpiresÀ utiliser ensemble, Il permet de calculer son temps effectif .Max AgeSi positif,Alors...CookieInMax Age Échec en quelques secondes ;Si négatif, Expire lorsque le navigateur est fermé , Le navigateur ne l'enregistre en aucune façon Cookie.
Path LeCookie Chemin d'utilisation pour .Si défini à/path/, Seul le chemin est /path/ La page de Cookie;Si défini à/, Toutes les pages sous ce nom de domaine peuvent y accéder Cookie.
Size Ici.CookieTaille.
HTTPChamp CookieDehttponlyPropriétés. Si cette propriété est true, Seulement si HTTP C'est dans la tête. Cookie Informations sur, Et ne peut pas passer document.cookie C'est une question de visite. Cookie.
Secure LeCookie S'il n'est transmis qu'en utilisant le Protocole de sécurité . Les protocoles de sécurité sont: HTTPSEtSSLAttendez., Chiffrer les données avant de les transférer sur le réseau .Par défautfalse.

4.Reptiles en action:Utilisationsocket Télécharger une image

(1)socketApprendre

socket Traduction étrangère en douilles ;En même temps, Parce qu'il a “ Accouplement ”Et“Mots”Le concept de, Donc C'est aussi connu sous le nom de socket .
Insérer la description de l'image ici

 Dépôt de connaissances :( On se connaît bien. !)
Socket Est un mécanisme de communication inter - processus , Fournit une application
Appel du système d'exploitation pour accéder au Protocole de communication , Permet au réseau de lire et d'écrire des données
Aussi facile que de lire et d'écrire des fichiers locaux ;Socket C'est une séquence. “Directives” ;
C'est déjà fait. “ Accouplement ”( Établir une communication réseau ou inter - processus )Et“Mots”( Chaîne d'instructions ordonnée interactive )Le concept de.

Insérer la description de l'image ici

①Utilisersocket Construire simplement un serveur :( Cliquez sur moi pour voir une autre version avancée TCP Articles côté serveur

import socket
# Objet serveur
server = socket.socket()
''' équivalent à:server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) socket.AF_INET:UtiliserIPV4; socket.SOCK_STREAM:Créer unsocketSocket. '''
# 1.Lier le serveur
server.bind(("0.0.0.0",8800)) #0.0.0.0 Est de permettre à tout le monde d'accéder ;8800 Est le numéro de port 
# 2.Écouter
server.listen(5)
while True:
# 3.Attendre la connexion
# accept Est une méthode de blocage ( Je ne bouge pas sans toi. !),Attendre la connexion, Chaque connexion crée un canal distinct .
# conn: Paramètres du canal ;addr: Adresse du canal .
conn,addr=server.accept()
# 4.Réception des données
data=conn.recv(1024)
print(data)
response="HTTP/1.1 200 OK\r\nContent-Type: text/html;charset=utf-8;\r\n\r\n<h1 style='color:black'> Je suis beau. !<h1>"
# 5.Envoyer des données
conn.send(response.encode())
print(" A répondu ")
# 6.Fermer
server.close()

Saisissez dans votre navigateur local :127.0.0.1:8800 Accès à ce serveur :
Insérer la description de l'image ici

②Utilisersocket Construire simplement un client :( Ramper à travers l'interface de la page d'accueil de Baidu )

import socket
# Créer un objet serveur En imprimant ceci client L'objet serveur est connu :Par défautIPV4,L'accord estTCP.
client=socket.socket()
# 1.Établir une connexion
client.connect(("www.baidu.com",80))
# Message de demande de construction 
data=b"GET / HTTP/1.1\r\nHost: www.baidu.com\r\n\r\n"
# 2.Envoyer la demande
client.send(data)
res=b""
# 3.Réception des données
temp=client.recv(4096)
while temp:
print("*"*50)
res += temp
temp = client.recv(4096)
print(temp.decode())
# 4.Déconnecter
client.close()

(2)Sur le terrain:Utilisersocket Viens en chercher une belle. MMPhotos de:

On dit qu'il n'y a pas de rampe arrière pour les chiens de chasse. , Choisissez des kakis doux et Pincez - les dès que vous commencez. , C'est pour ça qu'on est venus l'escalader. .

1.Tout d'abord,,Analyser la page Web:

Insérer la description de l'image ici

Et l'image que nous allons prendre URL C'est dans l'en - tête. Request URLMoyenne.CV C'est tout. !

2.Code supérieur:
# Photos de chasse au chien Télécharger une page 
import socket
import re
# Photos de chasse au chien 
img_url="https://i02piccdn.sogoucdn.com/a3ffebbb779e0baf"
''' Développement:Comment utiliserHTTPSDemande #HTTPSDemande import ssl client = ssl.wrap_socket(socket.socket()) #ssl.wrap_socket Un décorateur client.connect(('i02piccdn.sogoucdn.com',443)) '''
client = socket.socket()
# Créer une connexion Regarde ce qu'on grimpe. httpsAccordurl, Mais nous utilisons http Aussi parce que la redirection est automatique 
client.connect(("i02piccdn.sogoucdn.com",80)) #Connexion au serveur,ip La cartographie de l'adresse peut être localisée sur son serveur 
# Message de demande de construction 
data = "GET /a3ffebbb779e0baf HTTP/1.1\r\nHost:i02piccdn.sogoucdn.com\r\n\r\n"
# Envoyer des données
client.send(data.encode()) # Le message doit prendre la forme d'un code byte 
# Réception des données
first_data = client.recv(1024)
print("first_data",first_data)
length = int(re.findall(b"Content-Length: (.*?)\r\n",first_data)[0]) # Dans la Liste ,Donc plus0; La réponse est également sous forme de Bytecode ,Donc plusb
print(length) #Longueur du contenu
# La raison pour laquelle cette phrase a été écrite est que \r\n Il peut y avoir des données derrière. ,Ou peut - être pas, Si c'est le cas, je l'ai. 
# .* C'est une correspondance. \r\n Au - delà du saut de ligne , Ajouter après re.S, Peut également correspondre \r\nNouvelle ligne, Il est devenu invincible. !
image_data = re.findall(b"From Inner Cluster \r\n\r\n(.*?)",first_data,re.S)
if image_data:
image_data = image_data[0]
else:
image_data = b""
# Assembler les données pour obtenir la longueur correspondante 
while True:
temp = client.recv(1024)
image_data += temp
if len(image_data)>=length:
break
# 4.Déconnecter
client.close()
# Écrire un fichier
with open("girl.jpg","wb") as f:
f.write(image_data)
3.Obtenir des résultats:

Insérer la description de l'image ici La sortie de la console est : first_data b'HTTP/1.1 200 OK\r\nServer: nginx\r\nDate: Thu, 08 Jul 2021 17:04:43 GMT\r\nExpires: Fri, 08 Jul 2022 17:04:43 GMT\r\nX-NWS-UUID-VERIFY: 1266ff4f6f6197f273f603ca87522cc9\r\nExpiration-Time: Sun, 26 Dec 2021 13:11:13 GMT\r\nX-Daa-Tunnel: hop_count=3\r\nAccept-Ranges: bytes\r\nX-Cache-Lookup: Cache Miss\r\nLast-Modified: Sun, 27 Jun 2021 01:11:13 GMT\r\nCache-Control: max-age=31536000\r\nContent-Length: 19594\r\nX-NWS-LOG-UUID: 14051802991302897940\r\nConnection: keep-alive\r\nX-Cache-Lookup: Hit From Inner Cluster\r\n\r\n' 19594

5.In the end!

Insérer la description de l'image ici

À partir de maintenant.,Tiens bon.,Un peu plus par jour,Dans un avenir proche,Tu remercieras pour ce que tu as fait.!

Le blogueur continuera de mettre à jour les colonnes de base et de combat des reptiles,Lisez attentivement cet article.,Vous pouvez faire des commentaires sur vos lectures.Et peut suivre ce blogueur,Lire la suite de reptiles dans les jours à venir!

 Les erreurs ou les mots inappropriés peuvent être signalés dans la zone de commentaires.,Merci beaucoup.!
Si vous reproduisez cet article, veuillez me contacter pour indiquer l'intention, la source et le nom du blogueur. ,Merci beaucoup.!
版权声明:本文为[Solitaire]所创,转载请带上原文链接,感谢。 https://car.inotgo.com/2021/08/20210831044413841I.html