Maison >développement back-end >Tutoriel Python >Comment utiliser la bibliothèque de requêtes du robot d'exploration Web Python
En termes simples, il s'agit de créer un programme pour télécharger, analyser et organiser les données d'Internet de manière automatisée.
Tout comme lorsque nous naviguons sur le Web, nous copierons et collerons le contenu qui nous intéresse dans nos cahiers pour faciliter la lecture et la navigation la prochaine fois - le robot d'exploration nous aide à compléter automatiquement ces contenus
Bien sûr, si nous en rencontrons Sites Web qui ne peuvent pas être copiés et collés - les robots d'exploration Web peuvent montrer encore plus leur puissance
Lorsque nous devons effectuer une analyse de données - et souvent ces données sont stockées dans des pages Web, le téléchargement manuel prend également À l'heure actuelle, nous avons besoin d'un robot d'exploration Web pour nous aider à explorer automatiquement ces données (bien sûr, nous filtrerons les éléments inutiles sur la page Web)
Accéder et collecter les données du réseau a une large portée. gamme d'applications, dont beaucoup appartiennent au domaine de la science des données. Jetons un coup d'œil aux exemples suivants :
Les vendeurs Taobao ont besoin de trouver des informations positives et négatives utiles à partir d'avis massifs pour l'aider à saisir davantage l'opportunité. , analysant la psychologie d'achat des clients. Certains chercheurs ont exploré des informations sur Twitter, Weibo et d'autres médias sociaux pour créer un ensemble de données, établissant ainsi un modèle de prédiction pour identifier la dépression et les pensées suicidaires - afin que davantage de personnes aient besoin d'aide - bien sûr. nous devons également considérer les questions liées à la vie privée – mais c'est cool, n'est-ce pas ?
En tant qu'ingénieur en intelligence artificielle, ils ont exploré les photos des préférences des volontaires de l'Ins pour entraîner le modèle d'apprentissage en profondeur afin de prédire si les images données seront appréciées par les volontaires - les fabricants de téléphones mobiles ont intégré ces modèles dans leur application photo, poussé pour vous. Les data scientists de la plateforme de commerce électronique explorent les informations des produits consultés par les utilisateurs, effectuent des analyses et des prédictions, afin de proposer les produits que les utilisateurs souhaitent connaître et acheter le plus
Oui ! Les robots d'exploration Web sont largement utilisés, allant de l'exploration quotidienne par lots de fonds d'écran et d'images haute définition aux sources de données pour l'intelligence artificielle, l'apprentissage en profondeur et la formulation de stratégies commerciales.
Cette ère est l'ère des données, et les données sont le « nouveau pétrole »
Oui, lorsqu'il s'agit de robots d'exploration Web, c'est HTTP qui ne peut être évité. pas besoin d'être aussi détaillé que les ingénieurs réseau Comprendre tous les aspects de la définition du protocole, mais en guise d'introduction, nous devons quand même avoir une certaine compréhension
L'Organisation internationale de normalisation ISO maintient le modèle de référence d'interconnexion des systèmes de communication ouverts OSI, et ce modèle divise la structure de communication informatique en sept couches
Couche physique : incluant le protocole Ethernet, le protocole USB, le protocole Bluetooth, etc.
Couche liaison de données : incluant le protocole Ethernet
Couche réseau : incluant le protocole IP
Couche Transport : y compris les protocoles TCP, UDP
Couche Session : Contient les protocoles d'ouverture/fermeture et de gestion des sessions
Couche Présentation : Contient les protocoles de protection des formats et de traduction des données
Couche Application : Contient les protocoles de service réseau HTTP et DNS
Voyons maintenant à quoi ressemblent les requêtes et les réponses HTTP (car les en-têtes de requête personnalisés seront impliqués plus tard. Le message de requête général comprend le contenu suivant :
Requête). line
En-têtes de demande multiples
Ligne vierge
Corps du message facultatif
Message de demande spécifique :
GET https://www.baidu.com/?tn=80035161_1_dg HTTP/1.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: zh-Hans-CN,zh-Hans;q=0.8,en-GB;q=0.5,en;q=0.3 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18362 Accept-Encoding: gzip, deflate, br Host: www.baidu.com Connection: Keep-Alive
Il s'agit d'une demande lors de l'accès à Baidu. Bien sûr, nous n'avons pas besoin de le savoir. beaucoup de détails à l'intérieur, car le package de requêtes de python nous aidera à terminer notre exploration
Bien sûr, nous pouvons également consulter les informations renvoyées par la page Web pour notre requête :
HTTP/1.1 200 OK //这边的状态码为200表示我们的请求成功 Bdpagetype: 2 Cache-Control: private Connection: keep-alive Content-Encoding: gzip Content-Type: text/html;charset=utf-8 Date: Sun, 09 Aug 2020 02:57:00 GMT Expires: Sun, 09 Aug 2020 02:56:59 GMT X-Ua-Compatible: IE=Edge,chrome=1 Transfer-Encoding: chunked
Nous savons que python est en fait pré-Il existe d'autres bibliothèques pour gérer HTTP - urllib et urllib3, mais la bibliothèque de requêtes est plus facile à apprendre - le code est plus simple et plus facile à comprendre. Bien sûr, lorsque nous parcourrons avec succès la page Web et extrayons les éléments qui nous intéressent, nous mentionnerons une autre bibliothèque très utile - Beautiful Soup - c'est une autre histoire plus tard
Ici, nous. Nous pouvons directement trouver le fichier .whl des requêtes à installer, ou nous pouvons directement utiliser pip pour l'installer (bien sûr, si vous avez pycharm, vous pouvez le télécharger directement depuis le chargeur d'environnement à l'intérieur)
Maintenant. nous commençons à explorer officiellement la page Web
Le code est le suivant :
import requests target = 'https://www.baidu.com/' get_url = requests.get(url=target) print(get_url.status_code) print(get_url.text)
Résultats de sortie
200 //返回状态码200表示请求成功 <!DOCTYPE html>//这里删除了很多内容,实际上输出的网页信息比这要多得多 <!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html; charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge> <meta content=always name=referrer> <link rel=stylesheet type=text/css src=//www.baidu.com/img/gs.gif> </p> </div> </div> </div> </body> </html>
Les cinq lignes de code ci-dessus ont fait beaucoup de choses. Nous pouvons déjà explorer tout le contenu HTML de la page Web
Le. première ligne Code : Chargez la bibliothèque de requêtes. Deuxième ligne de code : Donnez le site Web qui doit être exploré. Troisième ligne de code : Utilisez les requêtes pour faire une requête. Le format général est le suivant :
对象 = requests.get(url=你想要爬取的网站地址)
Quatrième ligne de code : Renvoie le code d'état de la demande. Cinquième ligne de code : affiche le corps du contenu correspondant
Bien sûr, nous pouvons également imprimer plus de contenu
import requests target = 'https://www.baidu.com/' get_url = requests.get(url=target) # print(get_url.status_code) # print(get_url.text) print(get_url.reason)//返回状态 print(get_url.headers) //返回HTTP响应中包含的服务器头的内容(和上面展示的内容差不多) print(get_url.request) print(get_url.request.headers)//返回请求中头的内容
OK {'Cache-Control': 'private, no-cache, no-store, proxy-revalidate, no-transform', 'Connection': 'keep-alive', 'Content-Encoding': 'gzip', 'Content-Type': 'text/html', 'Date': 'Sun, 09 Aug 2020 04:14:22 GMT', 'Last-Modified': 'Mon, 23 Jan 2017 13:23:55 GMT', 'Pragma': 'no-cache', 'Server': 'bfe/1.0.8.18', 'Set-Cookie': 'BDORZ=27315; max-age=86400; domain=.baidu.com; path=/', 'Transfer-Encoding': 'chunked'} <PreparedRequest [GET]> {'User-Agent': 'python-requests/2.22.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}.
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!