Das Drehbuch, das ich neulich gemacht habe Der Feed-Parser nimmt das Katzenbild automatisch auf Dank dessen schreiten die Tage fort, an denen die Sammlung von Katzenbildern fortschreitet ...
Die Ausführungsgeschwindigkeit ist jedoch langsam. Nicht schnell ... Dieses Skript ist nicht schnell genug. Also werde ich versuchen, es zu ändern, um zu sehen, ob es schneller gemacht werden kann.
Vorerst habe ich gemessen, wie langsam das aktuelle Skript ist. Unten finden Sie eine Quelle, die Messlogik enthält.
get_cat.py
# -*- coding: utf-8 -*-
import feedparser
import urllib
import os
import time
def download_picture(q, count=10):
u"""Holen Sie sich Zählbilder von 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+")")
Ergebnis
complete!(6.05635690689)
Das Herunterladen von 10 Kopien dauerte 6 Sekunden. Ich habe es mehrmals versucht, aber es waren immerhin ungefähr 6 Sekunden. Jetzt können Sie nur noch 14400 Exemplare innerhalb von 24 Stunden herunterladen. Es ist alles andere als ideal.
httplib2 Aus dem Gerücht des Windes erfuhr ich von der Existenz einer Bibliothek namens httplib2. Vielmehr scheint dieser Standard zu sein als der Standard. Funktionen von httplib2 (↓).
Ist es nicht wunderbar? Lass es uns jetzt benutzen.
$ sudo pip install httplib2
Schnell installieren. Und das Programm reparieren.
get_cat2.py
# -*- coding: utf-8 -*-
import feedparser
import httplib2
import os
import time
def download_picture(q, count=10):
u"""Holen Sie sich Zählbilder von 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+")")
Ein seltsamer Ort.
Lass es sofort laufen!
Ausführungsergebnis
Zunächst das ursprüngliche Programm. Gut so.
complete!(5.79861092567)
Verbesserte Version. Hmm?
complete!(5.06348490715)
Die zweite verbesserte Version. Oh...
complete!(1.20627403259)
Die dritte verbesserte Version. Uooo!
complete!(0.768098115921)
Es ist schnell! Das ist praktisch genug. Es ist keine Lüge, die Geschwindigkeit pro Sekunde zu sagen.
** Fazit: httplib2 verbessert die Sammlung von Katzenbildern. ** ** **
Recommended Posts