Maison  >  Article  >  développement back-end  >  Pratique du cadre Scrapy : exploration des données du site Web de Jianshu

Pratique du cadre Scrapy : exploration des données du site Web de Jianshu

WBOY
WBOYoriginal
2023-06-22 09:36:561240parcourir

Pratique du framework Scrapy : exploration des données du site Web de Jianshu

Scrapy est un framework d'exploration Python open source qui peut être utilisé pour extraire des données du World Wide Web. Dans cet article, nous présenterons le framework Scrapy et l'utiliserons pour explorer les données des sites Web de Jianshu.

  1. Installation de Scrapy

Scrapy peut être installé à l'aide de gestionnaires de packages tels que pip ou conda. Ici, nous utilisons pip pour installer Scrapy. Entrez la commande suivante dans la ligne de commande :

pip install scrapy

Une fois l'installation terminée, vous pouvez utiliser la commande suivante pour vérifier si Scrapy a été installé avec succès :

scrapy version

Si vous voyez un résultat similaire à "Scrapy x.x.x - aucun projet actif ", puis Scrapy installé avec succès.

  1. Créer un projet Scrapy

Avant de commencer à utiliser Scrapy, nous devons créer un projet Scrapy. Entrez la commande suivante sur la ligne de commande :

scrapy startproject jianshu

Cela créera un projet Scrapy nommé "jianshu" dans le répertoire courant.

  1. Création d'un robot Scrapy

Dans Scrapy, un robot est un composant qui traite les données extraites d'un site Web. Nous utilisons Scrapy Shell pour analyser le site Web de Jianshu et créer des robots d'exploration.

Entrez la commande suivante sur la ligne de commande :

scrapy shell "https://www.jianshu.com"

Cela lancera Scrapy Shell, où nous pourrons visualiser le code source de la page et les éléments du site Web Jianshu afin de créer des sélecteurs pour notre robot.

Par exemple, nous pouvons utiliser le sélecteur suivant pour extraire le titre de l'article :

response.css('h1.title::text').extract_first()

Nous pouvons utiliser le sélecteur suivant pour extraire l'auteur de l'article :

response.css('a.name::text').extract_first()

Après avoir testé le sélecteur dans Scrapy Shell, nous pouvons en créer un pour notre robot Nouveaux fichiers Python. Entrez la commande suivante dans la ligne de commande :

scrapy genspider jianshu_spider jianshu.com

Cela créera une araignée Scrapy nommée "jianshu_spider". Nous pouvons ajouter le sélecteur que nous avons testé dans Scrapy Shell au fichier .py du robot et spécifier les données à extraire.

Par exemple, le code suivant extrait les titres et les auteurs de tous les articles sur la page d'accueil du site Web de Jianshu :

import scrapy

class JianshuSpider(scrapy.Spider):
    name = 'jianshu_spider'
    allowed_domains = ['jianshu.com']
    start_urls = ['https://www.jianshu.com/']

    def parse(self, response):
        for article in response.css('li[data-note-id]'):
            yield {
                'title': article.css('a.title::text').extract_first(),
                'author': article.css('a.name::text').extract_first(),
            }
  1. Exécutez le robot Scrapy et affichez les résultats

Maintenant, nous exécutons le robot Scrapy en mode ligne de commande et affichez les résultats dans un JSON dans le fichier. Entrez la commande suivante sur la ligne de commande :

scrapy crawl jianshu_spider -o articles.json

Cette commande exécutera notre robot d'exploration et enregistrera les données de sortie dans un fichier JSON appelé "articles.json".

  1. Conclusion

Dans cet article, nous avons présenté le framework Scrapy et l'avons utilisé pour récupérer les données du site Web de Jianshu. L'extraction de données à partir de sites Web est facile à l'aide du framework Scrapy, et Scrapy peut être étendu à des applications d'extraction de données à grande échelle grâce à sa concurrence et son évolutivité.

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