Heim >Backend-Entwicklung >Python-Tutorial >Crawler |. Batch-Download von HD-Hintergrundbildern (Quellcode + Tools enthalten)

Crawler |. Batch-Download von HD-Hintergrundbildern (Quellcode + Tools enthalten)

Python当打之年
Python当打之年nach vorne
2023-08-10 15:46:011478Durchsuche


Unsplash ist eine kostenlose, hochwertige Foto-Website , alle sind echte Fotografiefotos, die Fotoauflösung ist auch sehr groß, für Designerfreunde ist ein sehr gutes Material für jedermann und auch für einige Freunde des Illustrationstextens sehr praktisch. Es eignet sich auch gut als Hintergrundbild. Der entsprechende Funktionscode wurde in ein Exe-Tool gepackt. Die Code- und Tool-Erfassungsmethode ist am Ende des Artikels angehängt.


1. Importmodul

1.1 Importmodul

Code:

Crawler |. Batch-Download von HD-Hintergrundbildern (Quellcode + Tools enthalten)

Werfen wir zunächst einen Blick auf den manuellen Download-Vorgang. Beachten Sie, dass das durch Klicken mit der rechten Maustaste erhaltene Bild um ein bestimmtes Verhältnis komprimiert wird, anstatt mit der rechten Maustaste auf das Bild zu klicken und es zu speichern stark reduziert. Nehmen Sie die Natur als Beispiel, klicken Sie auf Kostenlos herunterladen und wählen Sie den Download-Pfad. Die Bildgröße beträgt 1,43 MB.

Crawler |. Batch-Download von HD-Hintergrundbildern (Quellcode + Tools enthalten)
Als nächstes analysieren Sie die spezifische Webseite:
Zunächst haben wir festgestellt, dass es unten auf der Webseite eine Option zur Auswahl der Seitenzahl gibt Ziehen Sie den Webseiten-Schieberegler herunter und finden Sie Bild Es wird dynamisch geladen, das heißt, wenn wir die Webseite herunterziehen, werden nachfolgende Bilder nacheinander angezeigt.

Nach mehreren Vorgängen habe ich festgestellt, dass die Webseite beim Herunterfahren die folgenden Anfragen ausgibt. Klicken Sie auf eine davon und Sie können die Bilder sehen Gesamtzahl: 10000, Gesamtzahl der Seiten: 500.

Crawler |. Batch-Download von HD-Hintergrundbildern (Quellcode + Tools enthalten)

Lassen Sie uns ein paar URLs herausnehmen und einen Blick darauf werfen:

Crawler |. Batch-Download von HD-Hintergrundbildern (Quellcode + Tools enthalten)

Die oben genannten Links haben nur unterschiedliche Seitenparameter und sie steigen der Reihe nach an, was relativ freundlich ist . Wenn Sie es anfordern, müssen Sie es einfach durchqueren.

Das Problem der Seitenzahl wurde gelöst. Analysieren Sie als Nächstes den Link jedes Bildes Genau 20. Bei demselben per_page-Wert in der Anfrage besteht kein Zweifel daran, dass der Link zu jedem Bild, nach dem wir suchen, hier ist.

Webseiten zu analysieren ist oft zeitaufwändig, aber insgesamt läuft es reibungslos. Jetzt crawlen wir offiziell die Bilder. 2. Crawl-Bilder Crawler |. Batch-Download von HD-Hintergrundbildern (Quellcode + Tools enthalten)

2.1 Modul importieren
import time
import random
import json
import requests
from fake_useragent import UserAgent
Zeit: Timing


Random: Generieren Sie Zufallszahlen
  • fake_useragent:代理

  • 2.2 获取图片 
    模拟代理,以网页的身份访问服务器,避免请求被服务器判定为机器爬虫而不响应请求
    ua = UserAgent(verify_ssl=False)
    headers = {'User-Agent': ua.random}
    根据响应,获取所有图片链接:
    def getpicurls(i,headers):
        picurls = []
        url = 'https://unsplash.com/napi/search/photos?query=nature&per_page=20&page={}&xp=feedback-loop-v2%3Aexperiment'.format(i)
        r = requests.get(url, headers=headers, timeout=5)
        time.sleep(random.uniform(3.1, 4.5))
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        allinfo = json.loads(r.text)
        results = allinfo['results']
        for result in results:
            href = result['urls']['full']
            picurls.append(href)
        return picurls
    2.3 保存图片 

    保存图片文件:
    def getpic(count,url):
        r = requests.get(url, headers=headers, timeout=5)
        with open('pictures/{}.jpg'.format(count), 'wb') as f:
            f.write(r.content)
    效果:

    Crawler |. Batch-Download von HD-Hintergrundbildern (Quellcode + Tools enthalten)


    3. EXE爬取

    exe工具运行结果:

    Crawler |. Batch-Download von HD-Hintergrundbildern (Quellcode + Tools enthalten)

    Hinweis:
    • Versuchen Sie, nicht häufig zu crawlen, um die Netzwerkreihenfolge nicht zu beeinträchtigen!

    • Bei den Bildern handelt es sich um hochauflösende Bilder aus dem Internet. Die Crawling-Geschwindigkeit hängt vom Netzwerk ab und ist im Allgemeinen nicht zu hoch.

    • Sie können einen Proxy-Pool erstellen, um schneller zu crawlen.

    Das obige ist der detaillierte Inhalt vonCrawler |. Batch-Download von HD-Hintergrundbildern (Quellcode + Tools enthalten). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Stellungnahme:
    Dieser Artikel ist reproduziert unter:Python当打之年. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen