Maison développement back-end Tutoriel Python Scrapy en action : analyse des données du film Douban et classement de popularité

Scrapy en action : analyse des données du film Douban et classement de popularité

Jun 22, 2023 pm 01:49 PM
豆瓣 爬取 scrapy

Scrapy est un framework Python open source permettant de récupérer des données rapidement et efficacement. Dans cet article, nous utiliserons Scrapy pour explorer les données et la popularité des films Douban.

  1. Préparation

Tout d'abord, nous devons installer Scrapy. Vous pouvez installer Scrapy en tapant la commande suivante sur la ligne de commande :

pip install scrapy
Copier après la connexion

Ensuite, nous créerons un projet Scrapy. Sur la ligne de commande, entrez la commande suivante :

scrapy startproject doubanmovie
Copier après la connexion

Cela créera un projet Scrapy appelé doubanmovie. Nous allons ensuite aller dans le répertoire du projet et créer un Spider appelé douban.py. Sur la ligne de commande, entrez la commande suivante :

cd doubanmovie
scrapy genspider douban douban.com
Copier après la connexion

Maintenant, nous avons un Spider prêt à l'emploi. Ensuite, nous définirons le comportement de l'araignée pour obtenir les données requises.

  1. Exploration des données de film

Nous utiliserons Spider pour explorer les données de film Douban. Plus précisément, nous obtiendrons les informations suivantes :

  • Nom du film
  • Réalisateur
  • Acteurs
  • Type
  • Pays
  • Langue
  • Date de sortie
  • Longueur
  • Note
  • Nombre de critiques

Ouvrez do uban .py, nous ajouterons le code suivant :

import scrapy

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

    def parse(self, response):
        movie_list = response.xpath('//div[@class="item"]')
        for movie in movie_list:
            yield {
                'name': movie.xpath('.//span[@class="title"]/text()').get(),
                'director': movie.xpath('.//div[@class="bd"]/p/text()[1]').get(),
                'actors': movie.xpath('.//div[@class="bd"]/p/text()[2]').get(),
                'genre': movie.xpath('.//div[@class="bd"]/p/text()[3]').get(),
                'country': movie.xpath('.//div[@class="bd"]/p/text()[4]').get(),
                'language': movie.xpath('.//div[@class="bd"]/p/text()[5]').get(),
                'release_date': movie.xpath('.//div[@class="bd"]/p/text()[6]').get(),
                'duration': movie.xpath('.//div[@class="bd"]/p/text()[7]').get(),
                'rating': movie.xpath('.//span[@class="rating_num"]/text()').get(),
                'num_reviews': movie.xpath('.//div[@class="star"]/span[@class="rating_num"]/text()').get(),
            }
Copier après la connexion

Dans ce code, nous utilisons XPath pour sélectionner les informations que nous devons obtenir. Nous utilisons le rendement pour générer ces informations et revenons pour les restituer à l'utilisateur.

Si nous exécutons notre Spider maintenant (exécutez la commande suivante : scrapy crawl douban), il explorera les données des 250 meilleurs films et les renverra à la ligne de commande.

  1. Obtenez le classement de popularité

Maintenant, nous avons obtenu avec succès les données des 250 meilleurs films. Ensuite, nous obtiendrons leur classement de popularité.

Nous devons d'abord créer un nouveau Spider pour explorer la liste TOP250 des films Douban. Nous utiliserons cette liste pour obtenir le classement des films.

Dans le fichier douban.py, nous ajouterons le code suivant :

import scrapy

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

    def parse(self, response):
        movie_list = response.xpath('//div[@class="item"]')
        for movie in movie_list:
            yield {
                'name': movie.xpath('.//span[@class="title"]/text()').get(),
                'director': movie.xpath('.//div[@class="bd"]/p/text()[1]').get(),
                'actors': movie.xpath('.//div[@class="bd"]/p/text()[2]').get(),
                'genre': movie.xpath('.//div[@class="bd"]/p/text()[3]').get(),
                'country': movie.xpath('.//div[@class="bd"]/p/text()[4]').get(),
                'language': movie.xpath('.//div[@class="bd"]/p/text()[5]').get(),
                'release_date': movie.xpath('.//div[@class="bd"]/p/text()[6]').get(),
                'duration': movie.xpath('.//div[@class="bd"]/p/text()[7]').get(),
                'rating': movie.xpath('.//span[@class="rating_num"]/text()').get(),
                'num_reviews': movie.xpath('.//div[@class="star"]/span[@class="rating_num"]/text()').get(),
            }

        next_page = response.xpath('//span[@class="next"]/a/@href')
        if next_page:
            url = response.urljoin(next_page[0].get())
            yield scrapy.Request(url, callback=self.parse)
Copier après la connexion

Dans le code, nous utilisons une variable appelée next_page pour vérifier si nous avons atteint la dernière page. Si nous n'avons pas encore atteint la dernière page, nous continuons à explorer la page suivante.

Ensuite, nous devons mettre à jour la méthode d'analyse pour obtenir le classement du film. Nous utiliserons la fonction enumerate de Python pour associer un classement à chaque film.

Dans le fichier douban.py, nous remplacerons la méthode d'analyse d'origine par :

def parse(self, response):
        movie_list = response.xpath('//div[@class="item"]')
        for i, movie in enumerate(movie_list):
            yield {
                'rank': i + 1,
                'name': movie.xpath('.//span[@class="title"]/text()').get(),
                'director': movie.xpath('.//div[@class="bd"]/p/text()[1]').get(),
                'actors': movie.xpath('.//div[@class="bd"]/p/text()[2]').get(),
                'genre': movie.xpath('.//div[@class="bd"]/p/text()[3]').get(),
                'country': movie.xpath('.//div[@class="bd"]/p/text()[4]').get(),
                'language': movie.xpath('.//div[@class="bd"]/p/text()[5]').get(),
                'release_date': movie.xpath('.//div[@class="bd"]/p/text()[6]').get(),
                'duration': movie.xpath('.//div[@class="bd"]/p/text()[7]').get(),
                'rating': movie.xpath('.//span[@class="rating_num"]/text()').get(),
                'num_reviews': movie.xpath('.//div[@class="star"]/span[@class="rating_num"]/text()').get(),
            }

        next_page = response.xpath('//span[@class="next"]/a/@href')
        if next_page:
            url = response.urljoin(next_page[0].get())
            yield scrapy.Request(url, callback=self.parse)
Copier après la connexion

Maintenant, si nous exécutons à nouveau notre spider, il obtiendra les données des 250 premiers films et les renverra à la ligne de commande. À ce stade, nous verrons le classement de tous les films.

  1. Conclusion

Scrapy est un outil très puissant et flexible pour récupérer des données rapidement et efficacement. Dans cet article, nous avons utilisé avec succès Scrapy pour explorer les données des films Douban et les classements de popularité.

Nous utilisons le code Python et XPath pour obtenir sélectivement des informations sur la page Web et utilisons des instructions de rendement pour les renvoyer à l'utilisateur. Tout au long du processus, Scrapy fournit un moyen simple et efficace de gérer et d'explorer de grandes quantités de données, nous permettant d'effectuer rapidement l'analyse et le traitement des données.

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 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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Scrapy implémente l'exploration et l'analyse des articles du compte public WeChat Scrapy implémente l'exploration et l'analyse des articles du compte public WeChat Jun 22, 2023 am 09:41 AM

Scrapy met en œuvre l'exploration d'articles et l'analyse des comptes publics WeChat. WeChat est une application de médias sociaux populaire ces dernières années, et les comptes publics qui y sont exploités jouent également un rôle très important. Comme nous le savons tous, les comptes publics WeChat sont un océan d’informations et de connaissances, car chaque compte public peut publier des articles, des messages graphiques et d’autres informations. Ces informations peuvent être largement utilisées dans de nombreux domaines, tels que les reportages médiatiques, la recherche universitaire, etc. Ainsi, cet article expliquera comment utiliser le framework Scrapy pour explorer et analyser les articles du compte public WeChat. Scr

Récupération de métadonnées à l'aide de l'API du New York Times Récupération de métadonnées à l'aide de l'API du New York Times Sep 02, 2023 pm 10:13 PM

Introduction La semaine dernière, j'ai écrit une introduction sur le scraping de pages Web pour collecter des métadonnées, et j'ai mentionné qu'il était impossible de scraper le site Web du New York Times. Le paywall du New York Times bloque vos tentatives de collecte de métadonnées de base. Mais il existe un moyen de résoudre ce problème en utilisant l'API du New York Times. Récemment, j'ai commencé à créer un site Web communautaire sur la plateforme Yii, que je publierai dans un prochain tutoriel. Je souhaite pouvoir ajouter facilement des liens pertinents par rapport au contenu du site. Même si les utilisateurs peuvent facilement coller des URL dans des formulaires, fournir des informations sur le titre et la source prend du temps. Ainsi, dans le didacticiel d'aujourd'hui, je vais étendre le code de scraping que j'ai récemment écrit pour tirer parti de l'API du New York Times afin de collecter les titres lors de l'ajout d'un lien vers le New York Times. Rappelez-vous, je suis impliqué

Méthode d'implémentation de chargement asynchrone Scrapy basée sur Ajax Méthode d'implémentation de chargement asynchrone Scrapy basée sur Ajax Jun 22, 2023 pm 11:09 PM

Scrapy est un framework d'exploration Python open source qui peut obtenir rapidement et efficacement des données à partir de sites Web. Cependant, de nombreux sites Web utilisent la technologie de chargement asynchrone Ajax, ce qui empêche Scrapy d'obtenir directement des données. Cet article présentera la méthode d'implémentation de Scrapy basée sur le chargement asynchrone Ajax. 1. Principe de chargement asynchrone Ajax Chargement asynchrone Ajax : Dans la méthode de chargement de page traditionnelle, une fois que le navigateur a envoyé une requête au serveur, il doit attendre que le serveur renvoie une réponse et charge la page entière avant de passer à l'étape suivante.

Analyse de cas Scrapy : Comment explorer les informations de l'entreprise sur LinkedIn Analyse de cas Scrapy : Comment explorer les informations de l'entreprise sur LinkedIn Jun 23, 2023 am 10:04 AM

Scrapy est un framework d'exploration basé sur Python qui peut obtenir rapidement et facilement des informations pertinentes sur Internet. Dans cet article, nous utiliserons un cas Scrapy pour analyser en détail comment explorer les informations d'une entreprise sur LinkedIn. Déterminer l'URL cible Tout d'abord, nous devons indiquer clairement que notre cible est les informations de l'entreprise sur LinkedIn. Par conséquent, nous devons trouver l’URL de la page d’informations sur l’entreprise LinkedIn. Ouvrez le site Web LinkedIn, saisissez le nom de l'entreprise dans le champ de recherche et

Comment définir le mode anglais sur l'application Douban Comment définir le mode anglais sur l'application Douban Comment définir le mode anglais sur l'application Douban Comment définir le mode anglais sur l'application Douban Mar 12, 2024 pm 02:46 PM

Comment définir le mode anglais sur l'application Douban ? L'application Douban est un logiciel qui vous permet de consulter les avis de diverses ressources. Ce logiciel a de nombreuses fonctions. Lorsque les utilisateurs utilisent ce logiciel pour la première fois, ils doivent se connecter, et la langue par défaut de ce logiciel est le mode chinois. les utilisateurs aiment utiliser le mode anglais, mais ils ne savent pas comment définir le mode anglais sur ce logiciel. L'éditeur ci-dessous a compilé la méthode de configuration du mode anglais pour votre référence. Comment définir le mode anglais sur l'application Douban : 1. Ouvrez l'application « Douban » sur votre téléphone ; 2. Cliquez sur « Mon » ; 3. Sélectionnez « Paramètres » dans le coin supérieur droit.

Comment explorer et traiter les données en appelant l'interface API dans un projet PHP ? Comment explorer et traiter les données en appelant l'interface API dans un projet PHP ? Sep 05, 2023 am 08:41 AM

Comment explorer et traiter les données en appelant l'interface API dans un projet PHP ? 1. Introduction Dans les projets PHP, nous devons souvent explorer les données d'autres sites Web et traiter ces données. De nombreux sites Web fournissent des interfaces API et nous pouvons obtenir des données en appelant ces interfaces. Cet article explique comment utiliser PHP pour appeler l'interface API afin d'explorer et de traiter les données. 2. Obtenez l'URL et les paramètres de l'interface API Avant de commencer, nous devons obtenir l'URL de l'interface API cible et les paramètres requis.

Conseils d'optimisation Scrapy : Comment réduire l'exploration des URL en double et améliorer l'efficacité Conseils d'optimisation Scrapy : Comment réduire l'exploration des URL en double et améliorer l'efficacité Jun 22, 2023 pm 01:57 PM

Scrapy est un puissant framework d'exploration Python qui peut être utilisé pour obtenir de grandes quantités de données sur Internet. Cependant, lors du développement de Scrapy, nous rencontrons souvent le problème de l'exploration des URL en double, ce qui fait perdre beaucoup de temps et de ressources et affecte l'efficacité. Cet article présentera quelques techniques d'optimisation de Scrapy pour réduire l'exploration des URL en double et améliorer l'efficacité des robots d'exploration Scrapy. 1. Utilisez les attributs start_urls et Allowed_domains dans le robot d'exploration Scrapy pour

Le thriller spatial 'Alien' a obtenu un score de 7,7 sur Douban, et le box-office a dépassé les 100 millions le lendemain de sa sortie. Le thriller spatial 'Alien' a obtenu un score de 7,7 sur Douban, et le box-office a dépassé les 100 millions le lendemain de sa sortie. Aug 17, 2024 pm 10:50 PM

Selon les informations de ce site Web du 17 août, le thriller spatial "Alien : The Last Ship" de 20th Century Pictures est sorti hier (16 août) en Chine continentale. Le score Douban a été annoncé aujourd'hui comme étant de 7,7. Selon les données en temps réel de Beacon Professional Edition, le 17 août à 20h5, le box-office du film a dépassé les 100 millions. La répartition des notes sur ce site est la suivante : 5 étoiles représentent 20,9 % 4 étoiles représentent 49,5 % 3 étoiles représentent 25,4 % 2 étoiles représentent 3,7 % 1 étoiles représentent 0,6 % "Alien : Death Ship" est produit par 20th Century Pictures, Ridley Scott, le réalisateur de "Blade Runner" et "Prometheus", est le producteur, réalisé par Fede Alvare, écrit par Fede Alvare et Rodo Seiagues, et Card Leigh Spaeny, Isabella Merced, Aileen Wu, Spike Fey.

See all articles