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

高洛峰
Libérer: 2017-03-13 18:12:29
original
2000 Les gens l'ont consulté

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!

Étiquettes associées:
source:php.cn
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