Maison >développement back-end >Tutoriel Python >Utilisation pratique des robots en Python : les robots Zhihu

Utilisation pratique des robots en Python : les robots Zhihu

WBOY
WBOYoriginal
2023-06-10 16:24:071180parcourir

À l'ère d'Internet d'aujourd'hui, on peut dire que les informations dont nous avons besoin sont globales, mais comment obtenir ces informations est souvent un problème. L’une des méthodes couramment utilisées consiste à collecter des informations via des robots d’exploration Web. Concernant l’écriture de robots web, le langage Python est souvent l’un des outils les plus populaires. Dans cet article, nous décrirons comment utiliser Python pour écrire un robot d'exploration Web basé sur Zhihu.

Zhihu est un célèbre site social de questions et réponses, très important pour l'intégration et la synthèse des informations. Nous pouvons utiliser des robots d'exploration pour obtenir des questions, des réponses, des informations sur les utilisateurs, etc. sur le site Web. Ici, nous présentons principalement comment obtenir des informations sur les utilisateurs de Zhihu.

Tout d'abord, nous devons utiliser les bibliothèques communes des robots d'exploration Python-Requests et BeautifulSoup. La bibliothèque Requests peut nous aider à obtenir le contenu de la page Web, et la bibliothèque BeautifulSoup peut nous aider à analyser le contenu de la page Web et à obtenir les informations dont nous avons besoin. Ces deux bibliothèques doivent être installées avant utilisation.

Une fois l'installation terminée, nous pouvons d'abord obtenir la page d'accueil de l'utilisateur Zhihu via la bibliothèque Requests, par exemple :

import requests

url = 'https://www.zhihu.com/people/zionyang/'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
response = requests.get(url, headers=headers)
html = response.text

Dans le code ci-dessus, nous l'obtenons via get méthode dans la bibliothèque Requests La page d'accueil de l'utilisateur Zhihu "zionyang". Parmi eux, le paramètre headers est ajouté pour éviter d'être reconnu par le mécanisme anti-crawler.

Après avoir obtenu le code source de la page Web, nous pouvons utiliser BeautifulSoup pour analyser le contenu HTML. Comme le montre le code suivant :

from bs4 import BeautifulSoup

soup = BeautifulSoup(html, 'lxml')

Définissez l'analyseur sur "lxml", et nous pourrons ensuite utiliser la puissante fonction de BeautifulSoup pour analyser les documents HTML. Vous trouverez ci-dessous quelques méthodes d'analyse couramment utilisées. Méthode

  1. find_all : renvoie une liste de tous les nœuds qui correspondent à la condition spécifiée. Par exemple, l'implémentation de code suivante renvoie toutes les « questions » sur la page d'accueil de l'utilisateur :
questions = soup.find_all('a', {'data-nav':'question'})
for question in questions:
    print(question.text)
  1. find, méthode : renvoie le premier nœud qui remplit les conditions spécifiées.
name = soup.find('span', {'class': 'ProfileHeader-name'}).text
  1. select méthode : utilisez le sélecteur CSS pour rechercher.
education = soup.select('li.ProfileEducationList-item')[0].select('div.ProfileEducationList-degreeName')[0].text

Grâce à la méthode ci-dessus, nous pouvons obtenir divers contenus dans les informations utilisateur de Zhihu. Il convient de noter qu'en accédant à la page d'accueil de l'utilisateur sans se connecter à la page Web, nous ne pouvons obtenir que les informations de base de l'utilisateur, et nous ne pouvons même pas obtenir d'informations privées telles que le sexe.

Tout en obtenant des informations sur l'utilisateur, nous pouvons également obtenir des données telles que l'attention de l'utilisateur, ses fans, ses likes, etc. Nous pouvons utiliser des outils tels que Fiddler pour capturer des paquets afin d'obtenir l'URL correspondant aux données requises, puis y accéder via la bibliothèque de requêtes :

url = 'https://www.zhihu.com/people/zionyang/followers'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3',
    'Cookie': 'your_cookie'
}
response = requests.get(url, headers=headers)
data = response.json()

Parmi eux, nos propres informations sur les cookies doivent être ajoutées à le paramètre headers, sinon nous ne pourrons pas obtenir les données requises.

Grâce à la méthode ci-dessus, nous pouvons utiliser Python pour écrire notre propre robot d'exploration Web et obtenir des informations massives. Bien entendu, pendant le processus d'exploration, vous devez faire attention à vous conformer aux réglementations pertinentes du site Web pour éviter d'affecter le site Web. En même temps, vous devez également faire attention à la protection des informations personnelles. J'espère que l'introduction de cet article sera utile aux débutants.

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