Une lecture incontournable pour les nouveaux robots : Guide de démarrage de Scrapy

王林
Libérer: 2023-06-22 09:05:51
original
1696 Les gens l'ont consulté

En matière d'acquisition de données, les web crawlers sont devenus un outil indispensable. Cependant, pour ceux qui débutent dans l’apprentissage et la maîtrise des techniques de web scraping, choisir les bons outils et frameworks peut être déroutant. Parmi les nombreux outils d’exploration Web, Scrapy est un outil très populaire. Scrapy est un framework Python open source qui offre une approche flexible du traitement et de l'extraction de données.

Dans cet article, je vais vous présenter les bases de Scrapy et vous expliquer comment créer un robot d'exploration Web simple dans Scrapy.

1. Premiers pas avec Scrapy

  1. Installer Scrapy

Avant de commencer, vous devez d'abord installer Scrapy . L'installation de Scrapy est très simple, il suffit d'exécuter la commande suivante dans la ligne de commande :

pip install scrapy
Copier après la connexion
  1. Création d'un projet Scrapy

Lors de la création d'un Projet Scrapy, vous pouvez utiliser la commande suivante :

scrapy startproject <project_name>
Copier après la connexion

Cela créera un dossier nommé dans le répertoire actuel et y créera les fichiers et dossiers requis.

  1. Create Spider

Dans Scrapy, Spider est le composant principal que nous utilisons pour explorer les données. Spider définit comment commencer à demander des URL, comment suivre les liens, comment analyser les pages, etc. Dans Scrapy, nous pouvons utiliser la commande suivante pour créer un Spider :

scrapy genspider <spider_name> <domain_name>
Copier après la connexion

Cela créera un nouveau Spider dans le projet et l'enregistrera dans le répertoire spiders. Vous pouvez définir les méthodes de requête et d'analyse dont nous avons besoin en éditant le Spider.

  1. Configurer le site Web d'exploration

Il est très important de configurer le site Web d'exploration. Nous devons définir l'URL du site Web à explorer dans le fichier Spider et comment configurer la requête. Dans Scrapy, cette fonction peut être réalisée en écrivant la méthode start_requests. Cette méthode sera appelée lorsque le Spider démarrera et enverra une requête à partir d'une URL spécifique.

  1. Analyse de page

Dans Scrapy, l'analyse d'une page Web est l'étape la plus importante. Nous pouvons utiliser des sélecteurs XPath ou CSS pour analyser la page afin d'extraire les données requises. Dans le code Spider, vous pouvez écrire la méthode d'analyse et utiliser les outils ci-dessus pour analyser la page.

  1. Stocker les données

Enfin, nous devons stocker les données extraites dans une base de données ou un fichier. Dans Scrapy, vous pouvez utiliser Pipeline pour réaliser cette opération. Pipeline est un mécanisme de traitement des données. Il définit des méthodes spécifiques pour le nettoyage, le filtrage, la transformation, le stockage, la sortie des données, etc.

2. Un exemple simple

Ensuite, nous allons écrire un simple Spider et utiliser Scrapy pour récupérer les données des 250 meilleurs films Douban. Tout d'abord, créez un nouveau projet en utilisant la commande suivante dans la ligne de commande :

scrapy startproject tutorial
Copier après la connexion

Allez dans le dossier du didacticiel et créez un Spider nommé douban_spider :

scrapy genspider douban_spider movie.douban.com
Copier après la connexion

Ensuite, nous avons besoin de Configurer cette araignée pour demander des pages et analyser des pages Web. Ajoutez le code suivant au fichier Spider :

import scrapy

class DoubanSpider(scrapy.Spider):
    name = "douban"
    allowed_domains = ["movie.douban.com"]
    start_urls = [
        "https://movie.douban.com/top250"
    ]

    def parse(self, response):
        for sel in response.xpath('//div[@class="info"]'):
            title = sel.xpath('div[@class="hd"]/a/span/text()').extract()
            yield {'title': title}
Copier après la connexion

Dans le code ci-dessus, nous définissons d'abord le nom du Spider et le nom de domaine du site Web crawlé. Ensuite, nous avons défini les URL que nous souhaitions explorer et écrit la méthode d'analyse pour analyser la page et extraire les données dont nous avions besoin.

Pour chaque élément avec un attribut de classe "info", nous utilisons XPath pour extraire les éléments contenant le titre du film et renvoyer ces éléments à l'aide du mot-clé rendement.

Enfin, nous devons sauvegarder les données extraites. Un nouveau Pipeline peut être créé pour traiter et stocker les données extraites. Ce qui suit est un simple Pipeline qui enregistre les données extraites dans un fichier JSON :

import json

class TutorialPipeline(object):

    def __init__(self):
        self.file = open('douban_top250.json', 'w')

    def process_item(self, item, spider):
        line = json.dumps(dict(item)) + "
"
        self.file.write(line)
        return item

    def spider_closed(self, spider):
        self.file.close()
Copier après la connexion

Enfin, nous devons configurer le Pipeline dans settings.py. Ajoutez simplement le code suivant dans ITEM_PIPELINES :

ITEM_PIPELINES = {
    'tutorial.pipelines.TutorialPipeline': 100,
}
Copier après la connexion

Maintenant, nous avons écrit un simple Scrapy Spider et pouvons le démarrer en exécutant la commande suivante :

scrapy crawl douban
Copier après la connexion
#🎜 🎜#Après avoir exécuté cette commande, Scrapy commencera à demander la page et à analyser les données. Les données extraites seront enregistrées dans un fichier JSON.

3. Conclusion

Scrapy est un framework de robot d'exploration Web très flexible et puissant. Avec Scrapy, nous pouvons facilement créer un robot d'exploration Web efficace et évolutif et extraire les données requises. Cet article présente les bases de Scrapy et fournit un exemple simple, dans l'espoir d'aider les novices qui apprennent les robots d'exploration Web.

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!