Maison  >  Article  >  développement back-end  >  Comment Scrapy analyse le code HTML

Comment Scrapy analyse le code HTML

WBOY
WBOYoriginal
2023-06-22 21:25:38908parcourir

Scrapy est un framework d'exploration de sites Web basé sur Python qui peut facilement explorer et analyser les données sur les sites Web. Lors de l'utilisation de Scrapy, l'analyse du code HTML est une partie essentielle. Cet article présentera comment Scrapy analyse le code HTML pour aider les lecteurs à mieux comprendre l'utilisation de Scrapy.

1. Le principe de l'analyse du code HTML par Scrapy
Dans Scrapy, il existe deux façons d'analyser le code HTML : XPath et CSS Selector. XPath est un langage de chemin XML qui peut parcourir et sélectionner les nœuds d'un document XML. CSS Selector est un sélecteur de style CSS qui sélectionne les éléments de la page via une syntaxe similaire à CSS. Lorsque vous utilisez Scrapy pour analyser du code HTML, vous pouvez choisir différentes méthodes d'analyse en fonction de la structure de la page et du type de données à capturer.

2. XPath analyse le code HTML
XPath est une méthode courante d'analyse du code HTML dans Scrapy. Pour utiliser XPath, vous pouvez utiliser la bibliothèque lxml ou la bibliothèque Selector fournie avec Scrapy. Ci-dessous, nous prenons Selector dans Scrapy comme exemple pour présenter comment utiliser XPath.

Tout d'abord, nous devons obtenir le code source de la page, ce qui peut être obtenu en utilisant la bibliothèque Request de Scrapy.

from scrapy import Request

def parse(self, response):
    yield Request(url='http://example.com', callback=self.parse_page)
 
def parse_page(self, response):
    html = response.body

Ensuite, nous pouvons utiliser la bibliothèque Selector pour analyser le code HTML. Construisez d’abord un objet Selector.

from scrapy.selector import Selector

selector = Selector(text=html)

Ensuite, nous pouvons utiliser la syntaxe XPath pour sélectionner les éléments requis. Les syntaxes XPath couramment utilisées sont les suivantes :

  1. Sélectionnez les éléments
selector.xpath('//title') #选取所有的title元素
selector.xpath('//div[@class="example"]') #选取class为example的div元素
selector.xpath('//div[contains(@class, "example")and @id="content"]')#选取class包含example、id为content的div元素
  1. Sélectionnez les attributs de l'élément
selector.xpath('//a/@href') #选取所有a标签的href属性
  1. Sélectionnez le texte de l'élément
selector.xpath('//h1/text()') #选取h1标签的文本内容
selector.xpath('//p[contains(text(), "example")]/text()')#选取p标签中包含example文本内容的文本

Ce qui précède explique comment utiliser XPath dans Scrapy.

3. Le sélecteur CSS analyse le code HTML
Le sélecteur CSS est une autre méthode couramment utilisée pour analyser le code HTML dans Scrapy. Contrairement à XPath, CSS Selector utilise la syntaxe des sélecteurs de style CSS. Ci-dessous, nous utilisons le sélecteur fourni avec Scrapy comme exemple pour présenter l'utilisation du sélecteur CSS.

Tout d'abord, nous devons obtenir le code source de la page, ce qui peut être obtenu en utilisant la bibliothèque Request de Scrapy.

from scrapy import Request

def parse(self, response):
    yield Request(url='http://example.com', callback=self.parse_page)
 
def parse_page(self, response):
    html = response.body

Ensuite, nous pouvons utiliser la bibliothèque Selector pour analyser le code HTML. Ou construisez d’abord un objet Selector.

from scrapy.selector import Selector

selector = Selector(text=html)

Utilisez la syntaxe CSS Selector pour sélectionner des éléments.

selector.css('title') #选取所有的title元素
selector.css('div.example') #选取class为example的div元素
selector.css('div.example#content')#选取class为example、id为content的div元素
selector.css('a::attr(href)') #选取所有a标签的href属性
selector.css('h1::text') #选取h1标签的文本内容
selector.css('p:contains("example")::text') #选取p标签中包含example文本内容的文本

Ce qui précède explique comment utiliser le sélecteur CSS dans Scrapy.

4. Résumé
Grâce à l'introduction de cet article, nous pouvons voir deux méthodes permettant à Scrapy d'analyser le code HTML : XPath et CSS Selector. En utilisant ces deux méthodes, nous pouvons facilement sélectionner les données dont nous avons besoin à partir du HTML. Il convient de noter que lors de la sélection d'une méthode d'analyse, la méthode et la syntaxe appropriées doivent être sélectionnées en fonction de la structure de la page et du type de données à extraire.

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