Crawler de l'entrée à la prison (4) - requêtes et expressions régulières

Énoncé : pourquoi n'y a-t-il pas de 3 ? La question est que l'examen est difficile à passer et qu'il est difficile de le passer après l'avoir changé plusieurs fois. Mais le problème n'est pas grand.3 est un cas d'étape, qui n'affecte pas l'apprentissage ultérieur.

Le contenu de l'article provient de "python crawler development"

4.1 Bibliothèque tierce Python

4.1.1 Introduction aux bibliothèques tierces

Dans le processus de développement Python, il est souvent nécessaire d'extraire du code avec des fonctions plus générales en tant que module séparé, afin qu'il puisse être appelé par plusieurs projets. Ce module public est appelé une bibliothèque Python (Library, Lib). Lors de sa sortie, Python viendra avec certaines bibliothèques couramment utilisées développées par l'officiel, telles que l'expression régulière "re", l'heure "time", etc. Ces bibliothèques sont appelées "bibliothèques officielles". Les bibliothèques publiées par des bibliothèques non officielles sont appelées "bibliothèques tierces". Python est si puissant précisément parce qu'il possède de nombreuses bibliothèques tierces. À l'aide de bibliothèques tierces, diverses fonctions peuvent être facilement implémentées. En prenant l'exemple de l'obtention du contenu d'une page Web, Python est en fait livré avec deux modules, urllib et urllib2. Le contenu Web peut également être récupéré à l'aide de ces deux modules. Mais ces deux modules sont très lourds à utiliser. Et les demandes, une bibliothèque tierce, permettent d'obtenir extrêmement facilement le contenu d'une page Web.

4.1.2 Installation d'une bibliothèque tierce

win + r - entrez cmd - nom de la bibliothèque d'installation pip - entrez

Après avoir installé la bibliothèque tierce, vous pouvez l'utiliser dans Python. Lorsque vous utilisez une bibliothèque tierce, tout comme la bibliothèque fournie avec Python, vous devez d'abord l'importer à l'aide du mot-clé "import" avant de pouvoir l'utiliser. Un autre point qui doit être souligné est que le nom du fichier .py écrit par le développeur ne doit pas être le même que le nom du module fourni avec Python ou la bibliothèque tierce qui a été installée, sinon des problèmes surviendront . Par exemple, le contenu de ce chapitre implique des requêtes et des expressions régulières, donc le lecteur ne doit pas créer un fichier nommé "requests.py" ou "re.py" lors du test du code. Une fois créé, le code doit signaler une erreur.

4.1.3 Installation des requêtes

pip install requests

4.2 demandes d'obtention du code source de la page Web

En utilisant un navigateur pour visiter la page Web, il semble que tout ce que vous avez à faire est d'entrer l'URL. Mais en fait, il existe de nombreuses façons d'ouvrir des pages Web, les plus courantes sont GET et POST. La page accessible directement en entrant l'URL dans le navigateur utilise la méthode GET. Certaines pages ne peuvent être sautées qu'en cliquant sur un lien ou un bouton d'une autre page, et ne sont pas accessibles directement en saisissant l'URL dans le navigateur.Ce type de page utilise la méthode POST.

4.2.1 Méthode GET

Pour les pages Web qui utilisent GET, vous pouvez utiliser la méthode get() des requêtes en Python pour obtenir le code source de la page Web :

import requests
html = requests.get('网址')
html_bytes=html.content
html_str=html_bytes.decode()

Dans ces 4 lignes de code, la première ligne importe la bibliothèque des requêtes afin qu'elle puisse être utilisée dans le code. La ligne 2 récupère la page Web à l'aide de la méthode GET et obtient un objet Response. À ce stade, si vous imprimez directement la variable HTML, vous obtenez : Veuillez ajouter une description de l'image
La ligne 3 utilise la propriété .content pour afficher le code source de la page Web de type octets. La quatrième ligne de code décode le code source de la page Web de type octets en code source de type chaîne.
Pour les 4 lignes de code ci-dessus, les 3 dernières lignes peuvent être combinées et réduites à deux lignes de code :

import requests
html_str=requests.get('网址').content.decode()

La raison pour laquelle il est nécessaire de décoder les données de type octets en données de type chaîne est que le chinois ne peut pas être affiché normalement sous le type de données de type octets. L'anglais correspondant à ce "decode" est "decode", nous devons donc utiliser la méthode .decode(). Les paramètres de cette méthode peuvent être omis. Lorsqu'il est omis, le format de codage UTF-8 est utilisé par défaut pour décoder le type d'octets dans le code source du type de chaîne. Il peut y avoir des pages Web chinoises dont le format d'encodage lui-même n'est pas UTF-8, ce qui nécessite que le nom du format d'encodage cible soit écrit entre parenthèses.Veuillez ajouter une description de l'image

4.2.2 Méthode POST

En plus de la méthode GET, il existe également des méthodes POST pour accéder aux pages Web. Certaines pages Web utilisent GET et POST pour accéder à la même URL, et les résultats sont différents. Il existe d'autres pages Web accessibles uniquement en mode POST. Si vous utilisez le mode GET pour y accéder, le site Web renverra directement un message d'erreur.

import requests
data={
    
    'key1':'value2','key2':'value2'}
html_data=requests.post('网址',data=data).content.decode()

Le contenu et le nombre d'éléments dans le dictionnaire de données doivent être modifiés en fonction de la situation réelle. La clé et la valeur sont différentes sur différents sites Web. En tant que crawler, la construction de ce dictionnaire est l'une des tâches.

Il existe également des URL et le contenu soumis doit être au format JSON. Les paramètres de la méthode post() doivent donc être modifiés :

html_json=requests.post('网址',json=data).content.decode()

En écrivant le code de cette manière, les requêtes peuvent convertir automatiquement le dictionnaire en une chaîne JSON.Le format JSON sera décrit en détail dans les chapitres suivants.

4.3 La combinaison des requêtes et des expressions régulières

Attribuez simplement le code source de l'URL obtenu au deuxième paramètre de l'expression régulière.

Je suppose que tu aimes

Origine blog.csdn.net/weixin_55159605/article/details/124134277
conseillé
Classement