Maison > développement back-end > Tutoriel Python > Comment demander des ressources réseau à l'aide de Python

Comment demander des ressources réseau à l'aide de Python

WBOY
Libérer: 2023-04-13 12:22:05
avant
1975 Les gens l'ont consulté

Comment demander des ressources réseau à l'aide de Python

Nous partageons des connaissances liées aux systèmes Linux depuis longtemps, donc certains amis peuvent penser à tort que nous partageons uniquement des choses liées aux opérations Linux. En fait, ce n'est pas le cas dans certains des problèmes que nous rencontrons. notre processus de développement quotidien. Tout ce que je ressens peut être résumé, je peux le partager avec.

Récemment, j'écris un programme pour accéder régulièrement aux ressources réseau, qui implique d'utiliser python pour accéder au réseau, nous allons donc faire un bref résumé de ce point aujourd'hui.

Utilisez Python pour accéder aux ressources du réseau

Pour accéder aux ressources du réseau, certains amis peuvent utiliser urllib.request. Ce module est également une bibliothèque standard Python. Cependant, nous utilisons des requêtes, qui sont un wrapper de urllib.request et sont plus pratiques à utiliser. Si c'est la première fois que vous l'utilisez, vous devez installer les requêtes. Nous utilisons pip pour installer :

pip install --user requests
Copier après la connexion

Après une installation réussie, vous pouvez l'utiliser directement. Lorsque vous l'utilisez, vous devez l'introduire au-dessus du fichier python :

.
import requestsimport requests
Copier après la connexion

Pour faciliter la démonstration, nous utilisons le module de requêtes pour visiter le projet python avec les étoiles les plus élevées sur github L'adresse est :

​//m.sbmmt.com/link/62d90d223cf3e2239113a4963b191d71​

Afin d'avoir une compréhension globale, vous pouvez d'abord utiliser Le navigateur ouvre cette adresse et regarde le contenu à l'intérieur. Il s'agit d'un texte affiché au format json.

Ensuite, nous créons un nouveau fichier ​​test-resp.py​​ et entrons le code suivant :

import requests
url='​​//m.sbmmt.com/link/62d90d223cf3e2239113a4963b191d71​​';
get_resp=requests.get(url);
Copier après la connexion

La première ligne du code ci-dessus introduit le module de requêtes, et la deuxième ligne stocke l'adresse à laquelle accéder dans la variable url. La ligne 3 utilise la méthode get du module de requêtes pour accéder à l'url et stocke la réponse dans la variable get_resp. La réponse est un objet contenant le contenu et l'état de la ressource demandée. Vous pouvez imprimer le statut de la réponse, en utilisant l'objet status_code, comme indiqué ci-dessous :

print(get_resp.status_code)
Copier après la connexion

Le résultat est le suivant :

$ python ​​test-resp.py​​
200
Copier après la connexion

Bien sûr, vous pouvez également imprimer le texte de la réponse, c'est-à-dire imprimer get_resp. texte, mais ce texte n'est pas formaté et n'est pas facile à lire. Comme le montre l'image ci-dessous :

Nous n'avons intercepté qu'une partie du résultat dans l'image ci-dessus car il est trop long... Ce résultat est plus difficile à analyser. , mais il n'y a aucune raison de s'inquiéter. Nous pouvons le remarquer en regardant simplement son contenu, donc le résultat de la réponse est également un json, et la fonction d'analyse de python pour json est très puissante. indiquez la valeur clé de ce json comme suit : Comme vous pouvez le voir, nous pouvons traiter complètement ce résultat de réponse en tant qu'objet json. Par exemple, la première valeur keyi total_count dans les résultats ci-dessus représente le nombre total d'entrepôts python. Nous pouvons imprimer cette valeur comme suit :

print(get_resp.json().keys())
Copier après la connexion

Les résultats d'exécution sont les suivants :

$ python ​​test-resp.py​​
dict_keys(['total_count', 'incomplete_results', 'items'])
Copier après la connexion

Si les ressources réseau sont lues, c'est le cas. un format HTML ordinaire Vous pouvez utiliser une bibliothèque tierce BeautifulSoup, qui peut parfaitement résoudre l'analyse HTML. Nous avons également présenté BeautifulSoup dans des articles précédents. Vous pouvez vous référer à : Utilisation de la bibliothèque Beautiful Soup de Python pour analyser des pages Web

Ajouter des informations d'en-tête de requête

Certaines ressources réseau peuvent avoir des restrictions sur la réponse aux requêtes, telles que le blocage des robots (programmes). accès, ou vous devez vous connecter (avoir une session utilisateur) pour y accéder, vous pouvez ajouter un en-tête de requête à la requête, simuler le navigateur dans l'en-tête de requête, ajouter des informations de session utilisateur (jeton), etc. Comme indiqué ci-dessous :

response_dict=get_resp.json();
print("Total repositories:", response_dict['total_count'])
Copier après la connexion

Dans le code ci-dessus, User-Agent dans l'objet en-têtes correspond aux informations simulées du navigateur et Authorization est le jeton de demande. Vous pouvez également ajouter d'autres informations d'en-tête de demande si nécessaire, comme indiqué ci-dessous :

$ python ​​test-resp.py​​
Total repositories: 9128125
Copier après la connexion

Autres

Les exemples que nous avons utilisés ci-dessus traitent tous des demandes d'obtention. La même chose s'applique aux demandes de publication, comme suit :

.
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36',
'Authorization':'41d15146-c3f3-4c0b-b48b-b5210151a9df'
}
get_resp=requests.get(url,headers=headers,params=None)
Copier après la connexion

La méthode d'utilisation est exactement la même que celle de la requête get.

Ce qui précède est tout le contenu que nous avons partagé cette fois, bienvenue pour en discuter.

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!

Étiquettes associées:
source:51cto.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal