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()
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('http://169it.com/xxx.htm').read() listname = ListName() listname.feed(content) for item in listname.name: print item.decode('gbk').encode('utf8')
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)
, start_pre sera appelé et end_pre sera appelé lorsqueattrs 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 desudo apt-get install python-pyquery
from pyquery import PyQuery as pyq doc=pyq(url=r'http://169it.com/xxx.html') cts=doc('.market-cat') for i in cts: print '====',pyq(i).find('h4').text() ,'====' for j in pyq(i).find('.sub'): print pyq(j).text() , print '\n'
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!