Maison  >  Article  >  développement back-end  >  Comment utiliser Scrapy pour explorer les livres Douban et leurs notes et commentaires ?

Comment utiliser Scrapy pour explorer les livres Douban et leurs notes et commentaires ?

WBOY
WBOYoriginal
2023-06-22 10:21:091643parcourir

Avec le développement d'Internet, les gens comptent de plus en plus sur Internet pour obtenir des informations. Pour les amateurs de livres, Douban Books est devenu une plateforme indispensable. En outre, Douban Books propose également une multitude d'évaluations et de critiques de livres, permettant aux lecteurs de comprendre un livre de manière plus complète. Cependant, obtenir ces informations manuellement revient à chercher une aiguille dans une botte de foin. À ce stade, nous pouvons utiliser l'outil Scrapy pour explorer les données.

Scrapy est un framework de robot d'exploration de sites Web open source basé sur Python qui nous aide à extraire efficacement les données des sites Web. Dans cet article, je vais me concentrer sur les étapes et présenter en détail comment utiliser Scrapy pour explorer les livres Douban ainsi que leurs notes et commentaires.

Première étape : Installer Scrapy

Tout d'abord, vous devez installer Scrapy sur votre ordinateur. Si vous avez installé pip (outil de gestion de packages Python), il vous suffit de saisir la commande suivante dans le terminal ou la ligne de commande :

pip install scrapy

De cette façon, Scrapy sera installé sur votre ordinateur. Si une erreur ou un avertissement se produit, il est recommandé d'effectuer les ajustements appropriés en fonction des invites.

Étape 2 : Créer un nouveau projet Scrapy

Ensuite, nous devons entrer la commande suivante dans le terminal ou la ligne de commande pour créer un nouveau projet Scrapy :

scrapy startproject douban
#🎜 🎜#Cette commande créera un dossier nommé douban dans le répertoire courant, qui contient les fichiers de base et la structure de répertoires de Scrapy.

Étape 3 : Écrire un programme d'exploration

Dans Scrapy, nous devons écrire un programme d'exploration pour indiquer à Scrapy comment extraire les données du site Web. Par conséquent, nous devons créer un nouveau fichier nommé douban_spider.py et écrire le code suivant :

import scrapy

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

    def parse(self, response):
        selector = scrapy.Selector(response)
        books = selector.xpath('//tr[@class="item"]')
        for book in books:
            title = book.xpath('td[2]/div[1]/a/@title').extract_first()
            author = book.xpath('td[2]/div[1]/span[1]/text()').extract_first()
            score = book.xpath('td[2]/div[2]/span[@class="rating_nums"]/text()').extract_first()
            comment_count = book.xpath('td[2]/div[2]/span[@class="pl"]/text()').extract_first()
            comment_count = comment_count.strip('()')
            yield {'title': title, 'author': author, 'score': score, 'comment_count': comment_count}
douban_spider.py 的文件,并编写如下代码:

scrapy crawl douban -o result.json

上面的代码实现了两个功能:

  1. 爬取豆瓣图书 top250 页面中的书籍标题、作者、评分和评论数。
  2. 将爬取到的数据以字典的形式返回。

在这个程序中,我们首先需要定义一个 DoubanSpider 类,并指定爬虫的名称、允许爬虫访问的域名和起始 URL。在 parse 方法中,我们通过 scrapy.Selector 对象进行 HTML 页面解析,并使用 XPath 表达式获取书籍的相关信息。

获取数据后,我们使用 yield 关键字将数据以字典的形式返回。这里的 yield 关键字的作用是将函数变成一个生成器,实现一次返回一个数据的效果。在 Scrapy 中,我们可以通过定义生成器的方式,实现对网站数据的高效抓取。

第四步:运行爬虫程序

在编写完爬虫程序后,我们需要在终端或命令行中运行以下代码来启动爬虫程序:

rrreee

这个指令的作用是启动名为 doubanLe code ci-dessus implémente deux fonctions :

    Exploration des titres de livres, des auteurs, des notes et du nombre de critiques dans les 250 premières pages de Douban Books.
  1. Renvoyer les données analysées sous la forme d'un dictionnaire.

Dans ce programme, nous devons d'abord définir une classe DoubanSpider et spécifier le nom du robot, le nom de domaine et l'URL de départ auxquels le robot est autorisé pour accéder. Dans la méthode parse, nous analysons la page HTML via l'objet scrapy.Selector et utilisons des expressions XPath pour obtenir des informations pertinentes sur le livre.

Après avoir obtenu les données, nous utilisons le mot-clé yield pour renvoyer les données sous forme de dictionnaire. Le mot-clé yield est utilisé ici pour transformer la fonction en générateur afin d'obtenir l'effet de renvoyer une donnée à la fois. Dans Scrapy, nous pouvons réaliser une exploration efficace des données de sites Web en définissant des générateurs.

#🎜🎜#Étape 4 : Exécutez le programme d'exploration #🎜🎜##🎜🎜#Après avoir écrit le programme d'exploration, nous devons exécuter le code suivant dans le terminal ou la ligne de commande pour démarrer le programme d'exploration : #🎜 🎜# rrreee#🎜🎜#La fonction de cette commande est de démarrer le robot nommé douban et de sortir les données analysées dans le fichier result.json au format JSON. #🎜🎜##🎜🎜#Grâce aux quatre étapes ci-dessus, nous pouvons explorer avec succès les livres Douban, leurs notes et évaluer les informations. Bien sûr, si vous avez besoin d'améliorer encore l'efficacité et la stabilité de votre programme d'exploration, vous devrez procéder à d'autres optimisations et ajustements. Par exemple : réglage du délai, prévention du mécanisme anti-exploration, etc. #🎜🎜##🎜🎜#En bref, utiliser Scrapy pour explorer les livres Douban, leurs notes et les informations de révision est une tâche relativement simple et intéressante. Si vous êtes intéressé par l'exploration de données et la programmation Python, vous pouvez essayer davantage l'exploration de données à partir d'autres sites Web pour améliorer vos compétences en programmation. #🎜🎜#

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