Maison  >  Article  >  développement back-end  >  Comment utiliser la bibliothèque de requêtes du robot d'exploration Web Python

Comment utiliser la bibliothèque de requêtes du robot d'exploration Web Python

WBOY
WBOYavant
2023-05-15 10:34:131217parcourir

1. Qu'est-ce qu'un robot d'exploration Web

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

Pourquoi avons-nous besoin de robots d'exploration Web

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)

Application du robot d'exploration 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 »

2. Protocole de transmission réseau HTTP

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

  1. Couche physique : incluant le protocole Ethernet, le protocole USB, le protocole Bluetooth, etc.

  2. Couche liaison de données : incluant le protocole Ethernet

  3. Couche réseau : incluant le protocole IP

  4. Couche Transport : y compris les protocoles TCP, UDP

  5. Couche Session : Contient les protocoles d'ouverture/fermeture et de gestion des sessions

  6. Couche Présentation : Contient les protocoles de protection des formats et de traduction des données

  7. 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

3. ici directement)

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

1 Installation de la bibliothèque de requêtes

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)

2 Combat pratique

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 = &#39;https://www.baidu.com/&#39;
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
{&#39;Cache-Control&#39;: &#39;private, no-cache, no-store, proxy-revalidate, no-transform&#39;, 
&#39;Connection&#39;: &#39;keep-alive&#39;, 
&#39;Content-Encoding&#39;: &#39;gzip&#39;, 
&#39;Content-Type&#39;: &#39;text/html&#39;, 
&#39;Date&#39;: &#39;Sun, 09 Aug 2020 04:14:22 GMT&#39;,
&#39;Last-Modified&#39;: &#39;Mon, 23 Jan 2017 13:23:55 GMT&#39;, 
&#39;Pragma&#39;: &#39;no-cache&#39;, 
&#39;Server&#39;: &#39;bfe/1.0.8.18&#39;, 
&#39;Set-Cookie&#39;: &#39;BDORZ=27315; max-age=86400; domain=.baidu.com; path=/&#39;, &#39;Transfer-Encoding&#39;: &#39;chunked&#39;}
<PreparedRequest [GET]>
{&#39;User-Agent&#39;: &#39;python-requests/2.22.0&#39;, 
&#39;Accept-Encoding&#39;: &#39;gzip, deflate&#39;, 
&#39;Accept&#39;: &#39;*/*&#39;, 
&#39;Connection&#39;: &#39;keep-alive&#39;}
.

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer