Maison  >  Article  >  développement back-end  >  Pratique d'exploration Scrapy : Comment explorer les données de la base de données documentaires de l'Académie chinoise des sciences sociales ?

Pratique d'exploration Scrapy : Comment explorer les données de la base de données documentaires de l'Académie chinoise des sciences sociales ?

王林
王林original
2023-06-22 08:36:061268parcourir

Avec le développement d'Internet, la numérisation de diverses informations est devenue une tendance, de sorte que la grande quantité de données sur le site Web devient de plus en plus importante. L'exploration des données peut rendre l'analyse et le traitement plus pratiques. Le framework Scrapy est l'un des outils d'exploration couramment utilisés. Cet article explique comment explorer les données de la base de données de documents de l'Académie chinoise des sciences sociales via le robot d'exploration Scrapy.

1. Installez scrapy

scrapy est un framework d'exploration de sites Web open source basé sur Python, qui peut être utilisé pour explorer des sites Web et extraire des données. Avant de commencer, nous devons d’abord installer Scrapy. La commande d'installation est la suivante :

pip install scrapy

2. Écrivez le code du robot

Ensuite, nous devons créer un projet Scrapy et écrire le code du robot. Tout d'abord, utilisez le terminal pour créer un nouveau projet Scrapy :

scrapy startproject cssrc

Ensuite, entrez dans le répertoire du projet et créez un nouveau spider :

cd cssrc
scrapy genspider cssrc_spider cssrc.ac.cn

Dans le fichier spider, nous devons définir certains paramètres. Plus précisément, nous devons définir le paramètre start_urls pour définir les URL que nous souhaitons explorer et la fonction d'analyse pour traiter les données de réponse du site Web. La configuration est la suivante :

# -*- coding: utf-8 -*-
import scrapy


class CssrcSpiderSpider(scrapy.Spider):
    name = 'cssrc_spider'
    allowed_domains = ['cssrc.ac.cn']
    start_urls = ['http://www.cssrc.ac.cn']

    def parse(self, response):
        pass

Avec la configuration de base en place, nous devons écrire du code pour extraire les données du site Web. Plus précisément, nous devons trouver où se trouvent les données cibles et les extraire via le code. Dans cet exemple, nous devons trouver la page spécifique de la bibliothèque de littérature et extraire les données correspondantes. Le code est le suivant :

# -*- coding: utf-8 -*-
import scrapy


class CssrcSpiderSpider(scrapy.Spider):
    name = 'cssrc_spider'
    allowed_domains = ['cssrc.ac.cn']
    start_urls = ['http://www.cssrc.ac.cn']

    def parse(self, response):
        url = 'http://cssrc.ac.cn/report-v1/search.jsp'   # 文献库页面网址
        yield scrapy.Request(url, callback=self.parse_search)  # 发送请求

    def parse_search(self, response):
        # 发送post请求并得到响应
        yield scrapy.FormRequest.from_response(
            response,
            formdata={
                '__search_source__': 'T',   # 搜索类型为文献
                'fldsort': '0',   # 按相关度排序
                'Title': '',   # 标题
                'Author': '',   # 第一作者
                'Author2': '',   # 第二作者
                'Organ': '',   # 机构
                'Keyword': '',   # 关键词
                'Cls': '',   # 分类号
                '___action___': 'search'   # 请求类型为搜索
            },
            callback=self.parse_result   # 处理搜索结果的函数
        )

    def parse_result(self, response):
        # 通过xpath找到结果列表中的各个元素,并提取其中的文献信息
        result_list = response.xpath('//div[@class="info_content"]/div')
        for res in result_list:
            title = res.xpath('a[@class="title"]/text()').extract_first().strip()   # 文献标题
            authors = res.xpath('div[@class="yiyu"]/text()').extract_first().strip()   # 作者
            date = res.xpath('div[@class="date"]/text()').extract_first().strip()   # 出版日期
            url = res.xpath('a[@class="title"]/@href').extract_first()   # 文献详情页的url
            yield {
                'title': title,
                'authors': authors,
                'date': date,
                'url': url
            }

3. Exécutez le robot

Après avoir écrit le code, nous pouvons utiliser la commande pour exécuter le robot et obtenir les données. Plus précisément, nous pouvons utiliser la commande suivante pour exécuter le programme scrapy :

scrapy crawl cssrc_spider -o cssrc.json

où, cssrc_spider为我们之前设置的spider名称,cssrc.json est le nom du fichier de données que nous produisons. Après avoir exécuté la commande, le programme s'exécutera automatiquement et affichera les données.

4. Résumé

Cet article présente comment utiliser le framework scrapy pour explorer les données de la base de données documentaire de l'Académie chinoise des sciences sociales. Grâce à cet article, nous pouvons comprendre les principes de base des robots d'exploration et comment utiliser le framework Scrapy pour l'exploration. Dans le même temps, nous avons également appris à extraire des données via XPath et à utiliser des expressions régulières et des techniques de traitement d'encodage pour résoudre des problèmes tels que les caractères chinois tronqués. J'espère que cet article pourra vous aider et aura une certaine valeur de référence pour la mise en œuvre de robots d'exploration sur d'autres sites 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!

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