[PYTHON] Collectez des images de chats à la vitesse d'une seconde et visez la tribu Cat Hills

Aperçu

Le scénario que j'ai fait l'autre jour L'analyseur de flux récupère automatiquement l'image du chat Grâce à cela, l'époque où la collecte d'images de chat progresse ...

Cependant, la vitesse d'exécution est lente. Pas rapide ... Ce script n'est pas assez rapide. Je vais donc essayer de le modifier pour voir s'il peut être fait plus rapidement.

Tout d'abord, analysez la situation actuelle

Pour le moment, j'ai mesuré la lenteur du script actuel. Vous trouverez ci-dessous une source qui intègre la logique de mesure.

get_cat.py


# -*- coding: utf-8 -*-
import feedparser
import urllib
import os
import  time

def download_picture(q, count=10):
    u"""Récupérer des images de comptage de q."""
    count = str(count)
    feed = feedparser.parse("https://picasaweb.google.com/data/feed/base/all?q=" + q + "&max-results=" + count)
    pic_urls = []
    for entry in feed['entries']:
        url = entry.content[0].src
        if not os.path.exists(os.path.join(os.path.dirname(__file__), q)):
            os.mkdir(os.path.join(os.path.dirname(__file__), q))
        urllib.urlretrieve(url, os.path.join(os.path.dirname(__file__), q, os.path.basename(url)))
        print('download:' + url)

if __name__ == "__main__":
    time1=time.time()
    download_picture("cat", 10)
    time1_2=str(time.time()-time1)
    print("complete!("+time1_2+")")

résultat


complete!(6.05635690689)

Il a fallu 6 secondes pour télécharger 10 copies. Je l'ai essayé plusieurs fois, mais après tout, c'était environ 6 secondes. Désormais, vous ne pouvez télécharger que 14 400 exemplaires en 24 heures. C'est loin d'être idéal.

httplib2 J'ai appris l'existence d'une bibliothèque appelée httplib2 à partir de la rumeur du vent. Au contraire, celui-ci semble être plus standard que le standard. Caractéristiques de httplib2 (↓).

N'est-ce pas merveilleux? Utilisons-le maintenant.

$ sudo pip install httplib2

Installez rapidement. Et corrigez le programme.

get_cat2.py


# -*- coding: utf-8 -*-
import feedparser
import httplib2
import os
import time


def download_picture(q, count=10):
    u"""Récupérer des images de comptage de q."""
    count = str(count)
    feed = feedparser.parse("https://picasaweb.google.com/data/feed/base/all?q=" + q + "&max-results=" + count)
    pic_urls = []
    http = httplib2.Http(".chache")
    for entry in feed['entries']:
        url = entry.content[0].src
        open(os.path.join(os.path.join(os.path.dirname(__file__), q),os.path.basename(url)),'wb').write(http.request(url)[1])
        print('download:' + url)

if __name__ == "__main__":
    time1=time.time()
    download_picture("cat", 10)
    time1_2=str(time.time()-time1)
    print("complete!("+time1_2+")")

Un endroit étrange.

Exécutez-le tout de suite!

Résultat d'exécution


Tout d'abord, le programme original. Eh bien comme ça.
complete!(5.79861092567)

édition révisée. Hmm?
complete!(5.06348490715)
La deuxième version améliorée. Oh...
complete!(1.20627403259)
La troisième version améliorée. Uooo!
complete!(0.768098115921)

C'est rapide! C'est assez pratique. Ce n'est pas un mensonge de dire la vitesse par seconde.

** Conclusion: httplib2 contribue à améliorer la collecte d'images de chat. ** **

Recommended Posts

Collectez des images de chats à la vitesse d'une seconde et visez la tribu Cat Hills
Résumé de l'exploration d'image effectuée à la vitesse d'une seconde
Pour l'instant, celui qui crée une page d'accueil avec Django à la vitesse d'une seconde et la publie sur Heroku (compatible Windows)
J'ai mesuré la vitesse de la notation d'inclusion de liste, pendant et pendant avec python2.7.
La deuxième nuit de la boucle avec pour
Je veux ajouter du silence pendant 1 seconde au début d'un fichier wav
Comparez la vitesse d'ajout et de carte Python
Prise en compte des forces et faiblesses de Python
Créer un ensemble de données d'images à utiliser pour la formation
Jetez un œil au traitement de LightGBM Tuner
Créez un lot d'images et gonflez avec ImageDataGenerator
Tâches au démarrage d'un nouveau projet python
L'histoire de la création d'un «espace de discussion sur l'esprit et le temps» exclusivement pour les ingénieurs de l'entreprise
Donnez une date et une heure à la commande d'historique et collectez les fichiers d'historique de tous les utilisateurs avec un script
Comment insérer un processus spécifique au début et à la fin de l'araignée avec la tremblante