Maison développement back-end Tutoriel Python Utilisez le framework Scrapy pour explorer la bibliothèque d'images Flickr

Utilisez le framework Scrapy pour explorer la bibliothèque d'images Flickr

Jun 22, 2023 am 11:02 AM
爬虫 scrapy flickr

À l’ère actuelle des technologies de l’information, l’exploration de données massives est devenue une compétence importante. Avec le développement rapide de la technologie du Big Data, la technologie d’exploration des données est constamment mise à jour et améliorée. Parmi eux, le framework Scrapy est sans aucun doute le framework le plus couramment utilisé et le plus populaire. Il présente des avantages et une flexibilité uniques dans l'exploration et le traitement des données.

Cet article expliquera comment utiliser le framework Scrapy pour explorer la bibliothèque d'images Flickr. Flickr est un site Web de partage d'images avec des centaines de millions d'images dans son inventaire et une très grande quantité de ressources de données. Grâce à l'utilisation du framework Scrapy, nous pouvons facilement obtenir ces ressources de données, effectuer des recherches et des analyses, ou les utiliser pour créer des modèles d'application, afin de mieux utiliser la puissance du Big Data.

1. Introduction au framework Scrapy

Scrapy est un framework de robot d'exploration Web open source basé sur le langage Python. Il prend « l'efficacité » et la « maintenabilité » comme concepts de conception et met en œuvre un cadre d'exploration complet, plus adapté à l'exploration et au traitement de données à grande échelle. La partie centrale du framework Scrapy comprend les principaux modules fonctionnels suivants :

  • Moteur : Responsable du traitement du flux de données de l'ensemble du système et du contrôle de l'interaction et du transfert de données entre les différents composants.
  • Scheduler : Responsable du tri des requêtes envoyées par le moteur et de leur transmission au Downloader.
  • Downloader (Téléchargeur) : responsable du téléchargement du contenu Web, du traitement du contenu renvoyé par la page Web, puis de sa transmission au moteur.
  • Parser (Spider) : Responsable de l'analyse des pages Web téléchargées par le téléchargeur, de l'extraction des données souhaitées et de leur organisation en données structurées.
  • Pipeline : responsable du traitement ultérieur des données traitées, tel que l'enregistrement dans une base de données ou un fichier, etc.

2. Obtenir la clé API Flickr

Avant d'explorer les données, nous devons demander la clé API Flickr pour obtenir l'autorisation d'accéder à la base de données Flickr. Sur le site Web des développeurs Flickr (https://www.flickr.com/services/api/misc.api_keys.html), nous pouvons obtenir une CLÉ API en nous inscrivant. Les étapes de candidature spécifiques sont les suivantes :

① Tout d'abord, nous devons saisir l'URL https://www.flickr.com/services/apps/create/apply/ pour demander la clé API.

②Après avoir accédé à ce site Web, nous devons nous connecter. Si nous n'avons pas de compte, nous devons en créer un nous-mêmes.

③Après vous être connecté, vous devez remplir et soumettre le formulaire de candidature Flickr. Dans le formulaire, vous devez principalement renseigner deux informations :

  • Le nom d'une petite candidature
  • Une description d'un objectif "non commercial"

④Après avoir rempli le formulaire de candidature, le système générera une CLÉ API et un SECRET . Nous devons sauvegarder ces deux informations pour une utilisation ultérieure.

3. Implémentation de l'exploration de la bibliothèque d'images Flickr avec le framework Scrapy

Ensuite, nous présenterons comment utiliser le framework Scrapy pour explorer les données de la bibliothèque d'images Flickr.

1. Écrire le robot Scrapy

Tout d'abord, nous devons créer un nouveau projet Scrapy et créer un fichier de robot dans le projet. Dans le fichier crawler, nous devons définir les informations de base de la base de données API Flickr et l'emplacement de stockage des données :

import time
import json
import scrapy
from flickr.items import FlickrItem

class FlickrSpider(scrapy.Spider):
    name = 'flickr'
    api_key = 'YOUR_API_KEY'  # 这里填写你自己的API Key
    tags = 'cat,dog'  # 这里将cat和dog作为爬取的关键词,你可以自由定义
    format = 'json'
    nojsoncallback = '1'
    page = '1'
    per_page = '50'

    start_urls = [
        'https://api.flickr.com/services/rest/?method=flickr.photos.search&'
        'api_key={}'
        '&tags={}'
        '&page={}'
        '&per_page={}'
        '&format={}'
        '&nojsoncallback={}'.format(api_key, tags, page, per_page, format, nojsoncallback)
    ]

    def parse(self, response):
        results = json.loads(response.body_as_unicode())
        for photo in results['photos']['photo']:
            item = FlickrItem()
            item['image_title'] = photo['title']
            item['image_url'] = 'https://farm{}.staticflickr.com/{}/{}_{}.jpg'.format(
                photo['farm'], photo['server'], photo['id'], photo['secret'])
            yield item

        if int(self.page) <= results['photos']['pages']:
            self.page = str(int(self.page) + 1)
            next_page_url = 'https://api.flickr.com/services/rest/?method=flickr.photos.search&' 
                            'api_key={}' 
                            '&tags={}' 
                            '&page={}' 
                            '&per_page={}' 
                            '&format={}' 
                            '&nojsoncallback={}'.format(self.api_key, self.tags, self.page, self.per_page, self.format, self.nojsoncallback)
            time.sleep(1)  # 设置延时1秒钟
            yield scrapy.Request(url=next_page_url, callback=self.parse)
Copier après la connexion

Dans le fichier crawler, nous définissons les mots-clés « chat » et « chien » de la bibliothèque d'images Flickr, puis définissez Spécifiez les paramètres de rotation de page et définissez le format sur json. Nous avons extrait et traité les informations de chaque image dans la fonction d'analyse et les avons renvoyées en utilisant le rendement.

Ensuite, nous devons définir l'emplacement de stockage et le format des données, et les définir dans settings.py :

ITEM_PIPELINES = {
   'flickr.pipelines.FlickrPipeline': 300,
}

IMAGES_STORE = 'images'
Copier après la connexion

2 Écrire un pipeline d'articles

Ensuite, nous devons écrire un pipeline d'articles pour collecter les données collectées. Les données d'image sont traitées et stockées :

import scrapy
from scrapy.pipelines.images import ImagesPipeline
from scrapy.exceptions import DropItem

class FlickrPipeline(object):
    def process_item(self, item, spider):
        return item

class FlickrImagesPipeline(ImagesPipeline):
    def get_media_requests(self, item, info):
        for image_url in item['image_url']:
            try:
                yield scrapy.Request(image_url)
            except Exception as e:
                pass

    def item_completed(self, results, item, info):
        image_paths = [x['path'] for ok, x in results if ok]
        if not image_paths:
            raise DropItem("Item contains no images")
        item['image_paths'] = image_paths
        return item
Copier après la connexion

3. Exécutez le programme

Après avoir terminé l'écriture du code ci-dessus, nous pouvons exécuter le framework Scrapy pour implémenter les opérations d'exploration des données. Nous devons entrer la commande suivante dans la ligne de commande :

scrapy crawl flickr
Copier après la connexion

Après le démarrage du programme, le robot explorera les images de "chat" et "chien" dans la base de données Flickr et enregistrera les images dans l'emplacement de stockage spécifié.

4. Résumé

Grâce à l'introduction de cet article, nous avons appris en détail comment utiliser le framework Scrapy pour explorer la bibliothèque d'images Flickr. Dans les applications réelles, nous pouvons modifier les mots-clés, le nombre de pages ou le chemin de stockage des images en fonction de nos propres besoins. Quel que soit l'aspect sous lequel, le framework Scrapy est un framework d'exploration mature et riche en fonctionnalités. Ses fonctions constamment mises à jour et son évolutivité flexible offrent un soutien solide à notre travail d'exploration de 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.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

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)

Combien de temps faut-il pour apprendre le robot d'exploration Python Combien de temps faut-il pour apprendre le robot d'exploration Python Oct 25, 2023 am 09:44 AM

Le temps nécessaire pour apprendre les robots d'exploration Python varie d'une personne à l'autre et dépend de facteurs tels que la capacité d'apprentissage personnelle, les méthodes d'apprentissage, le temps d'apprentissage et l'expérience. L'apprentissage des robots d'exploration Python ne consiste pas seulement à apprendre la technologie elle-même, mais nécessite également de bonnes compétences en matière de collecte d'informations, de résolution de problèmes et de travail d'équipe. Grâce à un apprentissage et à une pratique continus, vous deviendrez progressivement un excellent développeur de robots Python.

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

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.

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

Analyse et solutions aux problèmes courants des robots PHP Analyse et solutions aux problèmes courants des robots PHP Aug 06, 2023 pm 12:57 PM

Analyse des problèmes courants et solutions pour les robots PHP Introduction : Avec le développement rapide d'Internet, l'acquisition de données réseau est devenue un maillon important dans divers domaines. En tant que langage de script largement utilisé, PHP possède de puissantes capacités d’acquisition de données. L’une des technologies couramment utilisées est celle des robots d’exploration. Cependant, lors du développement et de l’utilisation des robots d’exploration PHP, nous rencontrons souvent des problèmes. Cet article analysera et proposera des solutions à ces problèmes et fournira des exemples de code correspondants. 1. Description du problème selon lequel les données de la page Web cible ne peuvent pas être correctement analysées.

Pratique efficace du robot d'exploration Java : partage des techniques d'exploration de données Web Pratique efficace du robot d'exploration Java : partage des techniques d'exploration de données Web Jan 09, 2024 pm 12:29 PM

Pratique du robot d'exploration Java : Comment explorer efficacement les données d'une page Web Introduction : Avec le développement rapide d'Internet, une grande quantité de données précieuses est stockée dans diverses pages Web. Pour obtenir ces données, il est souvent nécessaire d’accéder manuellement à chaque page web et d’en extraire les informations une par une, ce qui est sans doute une tâche fastidieuse et chronophage. Afin de résoudre ce problème, les utilisateurs ont développé divers outils de robots d'exploration, parmi lesquels le robot d'exploration Java est l'un des plus couramment utilisés. Cet article amènera les lecteurs à comprendre comment utiliser Java pour écrire un robot d'exploration Web efficace et à démontrer la pratique à travers des exemples de code spécifiques. 1. La base du reptile

Utilisation de Selenium et PhantomJS dans le robot Scrapy Utilisation de Selenium et PhantomJS dans le robot Scrapy Jun 22, 2023 pm 06:03 PM

Utilisation de Selenium et PhantomJSScrapy dans le robot d'exploration Scrapy Scrapy est un excellent framework de robot d'exploration Web sous Python et a été largement utilisé dans la collecte et le traitement de données dans divers domaines. Dans la mise en œuvre du robot, il est parfois nécessaire de simuler les opérations du navigateur pour obtenir le contenu présenté par certains sites Web. Dans ce cas, Selenium et PhantomJS sont nécessaires. Selenium simule les opérations humaines sur le navigateur, nous permettant d'automatiser les tests d'applications Web

Utilisation approfondie de Scrapy : Comment explorer les données HTML, XML et JSON ? Utilisation approfondie de Scrapy : Comment explorer les données HTML, XML et JSON ? Jun 22, 2023 pm 05:58 PM

Scrapy est un puissant framework de robot d'exploration Python qui peut nous aider à obtenir des données sur Internet de manière rapide et flexible. Dans le processus d'exploration proprement dit, nous rencontrons souvent divers formats de données tels que HTML, XML et JSON. Dans cet article, nous présenterons comment utiliser Scrapy pour explorer respectivement ces trois formats de données. 1. Explorez les données HTML et créez un projet Scrapy. Tout d'abord, nous devons créer un projet Scrapy. Ouvrez la ligne de commande et entrez la commande suivante : scrapys

See all articles