Maison développement back-end Tutoriel Python Introduction à la méthode d'écriture de base de la fonction Python Web Crawler

Introduction à la méthode d'écriture de base de la fonction Python Web Crawler

Mar 13, 2017 pm 06:12 PM

Cet article présente principalement la méthode d'écriture de base de la fonction Python du robot d'exploration Web, à savoir Web Spider, est un nom très vivant. En comparant Internet à une toile d'araignée, Spider est une araignée qui rampe sur le Web. Les amis qui s'intéressent aux robots d'exploration Web peuvent se référer à cet article

Les robots d'exploration Web, à savoir Web Spider, sont un nom très vivant. Si Internet est comparé à une toile d’araignée, alors une araignée est une araignée qui rampe sur la toile.

1. La définition du robot d'exploration Web

Les araignées Web recherchent des pages Web via les adresses de liens des pages Web. À partir d'une certaine page du site Web (généralement la page d'accueil), lisez le contenu de la page Web, recherchez d'autres adresses de lien dans la page Web, puis trouvez la page Web suivante via ces adresses de lien, et continuez dans une boucle jusqu'à ce que toutes les pages de ce site Web aient été explorées. Si l’ensemble d’Internet est considéré comme un site Web, les robots d’exploration du Web peuvent alors utiliser ce principe pour explorer toutes les pages Web d’Internet. De cette façon, un robot d'exploration Web est un robot d'exploration, un programme qui explore les pages Web. L’opération de base d’un robot d’exploration Web consiste à explorer les pages Web.

2. Le processus de navigation sur la page Web

Le processus d'exploration de la page Web est en fait le même que la façon dont les lecteurs parcourent habituellement la page Web à l'aide du navigateur IE . Par exemple, vous saisissez l'adresse www.baidu.com dans la barre d'adresse de votre navigateur.

Le processus d'ouverture d'une page Web consiste en fait dans le fait que le navigateur, en tant que "client" de navigation, envoie une requête au serveur, "récupère" les fichiers côté serveur vers le local, puis interprète et affiche eux.

HTML est un langage de balisage qui utilise des balises pour marquer le contenu, l'analyser et le différencier. La fonction du navigateur est d'analyser le code HTML obtenu, puis de convertir le code original en page du site Web que nous voyons directement.

3. Fonction de robot d'exploration Web basée sur python

1). Obtenir une page html avec python

En fait, la saisie de site Web la plus basique ne comprend que deux phrases :


import urllib2
content = urllib2.urlopen('http://XXXX').read()
Copier après la connexion

De cette façon, vous pouvez obtenir l'intégralité du document HTML. Le problème clé est que nous. il faudra peut-être commencer par obtenir les informations utiles dont nous avons besoin dans ce document, et non dans l'intégralité du document. Cela nécessite d'analyser du HTML rempli de diverses balises.

2). Le robot d'exploration Python analyse la méthode HTML après avoir exploré la page

bibliothèque d'analyse HTML du robot Python SGMLParser

Python est livré par défaut avec des analyseurs tels que HTMLParser et SGMLParser. Le premier est vraiment difficile à utiliser, j'ai donc écrit un exemple de programme en utilisant SGMLParser :


< 🎜. >

import urllib2
from sgmllib import SGMLParser
 
class ListName(SGMLParser):
def init(self):
SGMLParser.init(self)
self.is_h4 = ""
self.name = []
def start_h4(self, attrs):
self.is_h4 = 1
def end_h4(self):
self.is_h4 = ""
def handle_data(self, text):
if self.is_h4 == 1:
self.name.append(text)
 
content = urllib2.urlopen(&#39;http://169it.com/xxx.htm&#39;).read()
listname = ListName()
listname.feed(content)
for item in listname.name:
print item.decode(&#39;gbk&#39;).encode(&#39;utf8&#39;)
Copier après la connexion
C'est très simple. Une classe appelée ListName est définie ici, et

hérite des méthodes de SGMLParser. Utilisez une variable is_h4 comme marque pour déterminer la balise h4 dans le fichier html. Si une balise h4 est rencontrée, le contenu de la balise est ajouté au nom de la variable List. Expliquez les fonctions start_h4() et end_h4(). Leur prototype est


start_tagname(self, attrs)
end_tagname(self)
Copier après la connexion
tagname est le nom de la balise dans SGMLParser. rencontrant
, start_pre sera appelé et end_pre sera appelé lorsque 
attrs est le paramètre du label, renvoyé sous la forme de [(attribut, valeur), (attribut, valeur), ...].

bibliothèque d'analyse HTML du robot d'exploration Python pyQuery

pyQuery est l'implémentation de

jQuery en python et peut utiliser la syntaxe jQuery. est très pratique pour utiliser et analyser des documents HTML. Vous devez l'installer avant utilisation, easy_install pyquery, ou l'exemple suivant sous Ubuntu :


sudo apt-get install python-pyquery
Copier après la connexion
 :


from pyquery import PyQuery as pyq
doc=pyq(url=r&#39;http://169it.com/xxx.html&#39;)
cts=doc(&#39;.market-cat&#39;)
 
for i in cts:
print &#39;====&#39;,pyq(i).find(&#39;h4&#39;).text() ,&#39;====&#39;
for j in pyq(i).find(&#39;.sub&#39;):
print pyq(j).text() ,
print &#39;\n&#39;
Copier après la connexion

Bibliothèque d'analyse HTML du robot Python BeautifulSoup

Un problème gênant est que la plupart des pages Web ne sont pas écrites en totale conformité avec les normes, et il y en a toutes des sortes d'erreurs inexplicables. Vous donne envie de retrouver la personne qui a écrit la page et de l'avoir tabassé. Afin de résoudre ce problème, nous pouvons choisir le célèbre BeautifulSoup pour analyser les documents HTML, qui a une bonne tolérance aux pannes.

Ce qui précède représente l'intégralité du contenu de cet article. Il fournit une analyse détaillée et une introduction à la mise en œuvre de la fonction de robot d'exploration Web Python. J'espère que cela sera utile à l'apprentissage de chacun.

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment résoudre le problème des autorisations rencontré lors de la visualisation de la version Python dans le terminal Linux? Comment résoudre le problème des autorisations rencontré lors de la visualisation de la version Python dans le terminal Linux? Apr 01, 2025 pm 05:09 PM

Solution aux problèmes d'autorisation Lors de la visualisation de la version Python dans Linux Terminal Lorsque vous essayez d'afficher la version Python dans Linux Terminal, entrez Python ...

Comment enseigner les bases de la programmation novice en informatique dans le projet et les méthodes axées sur les problèmes dans les 10 heures? Comment enseigner les bases de la programmation novice en informatique dans le projet et les méthodes axées sur les problèmes dans les 10 heures? Apr 02, 2025 am 07:18 AM

Comment enseigner les bases de la programmation novice en informatique dans les 10 heures? Si vous n'avez que 10 heures pour enseigner à l'informatique novice des connaissances en programmation, que choisissez-vous d'enseigner ...

Comment éviter d'être détecté par le navigateur lors de l'utilisation de Fiddler partout pour la lecture de l'homme au milieu? Comment éviter d'être détecté par le navigateur lors de l'utilisation de Fiddler partout pour la lecture de l'homme au milieu? Apr 02, 2025 am 07:15 AM

Comment éviter d'être détecté lors de l'utilisation de FiddlereVerywhere pour les lectures d'homme dans le milieu lorsque vous utilisez FiddlereVerywhere ...

Comment copier efficacement la colonne entière d'une dataframe dans une autre dataframe avec différentes structures dans Python? Comment copier efficacement la colonne entière d'une dataframe dans une autre dataframe avec différentes structures dans Python? Apr 01, 2025 pm 11:15 PM

Lorsque vous utilisez la bibliothèque Pandas de Python, comment copier des colonnes entières entre deux frames de données avec différentes structures est un problème courant. Supposons que nous ayons deux dats ...

Comment Uvicorn écoute-t-il en permanence les demandes HTTP sans servir_forever ()? Comment Uvicorn écoute-t-il en permanence les demandes HTTP sans servir_forever ()? Apr 01, 2025 pm 10:51 PM

Comment Uvicorn écoute-t-il en permanence les demandes HTTP? Uvicorn est un serveur Web léger basé sur ASGI. L'une de ses fonctions principales est d'écouter les demandes HTTP et de procéder ...

Comment obtenir des données d'information en contournant le mécanisme anti-frawler d'Investing.com? Comment obtenir des données d'information en contournant le mécanisme anti-frawler d'Investing.com? Apr 02, 2025 am 07:03 AM

Comprendre la stratégie anti-rampe d'investissement.com, Beaucoup de gens essaient souvent de ramper les données d'actualités sur Investing.com (https://cn.investing.com/news/latest-news) ...

See all articles