Maison  >  Article  >  développement back-end  >  Crawler | Téléchargement par lots de fonds d'écran HD (code source + outils inclus)

Crawler | Téléchargement par lots de fonds d'écran HD (code source + outils inclus)

Python当打之年
Python当打之年avant
2023-08-10 15:46:011409parcourir


Unsplash est un site Web de photos gratuit de haute qualité , la résolution photo est également très grande, pour les amis designers C'est un très bon matériel pour tout le monde, et il est également très pratique pour certains amis rédacteurs d'illustrations. Il fonctionne également bien comme fond d'écran. Le code de fonction correspondant a été intégré dans un outil exe. J'espère qu'il vous sera utile La méthode d'acquisition code + outil est jointe à la fin de l'article.


1. Module d'importation

Code :

Jetons d'abord un coup d'œil au processus de téléchargement manuel. Notez qu'au lieu de cliquer avec le bouton droit sur l'image et de l'enregistrer sous, l'image obtenue en cliquant avec le bouton droit sur la méthode de sauvegarde est compressée selon un certain rapport et la clarté sera. beaucoup réduit.
Prenez Nature comme exemple, cliquez sur

Télécharger gratuitementCrawler | Téléchargement par lots de fonds d'écran HD (code source + outils inclus) et sélectionnez le chemin de téléchargement. La taille de l'image est de 1,43 Mo.

Ensuite,

analysez la page Web spécifique
 :
Crawler | Téléchargement par lots de fonds d'écran HD (code source + outils inclus)
Tout d'abord, nous avons observé qu'il y a une option de sélection du numéro de page au bas de la page Web. Nous avons essayé. pour dérouler le curseur de la page Web et trouver
image Il est chargé dynamiquement, c'est-à-dire que lorsque nous déroulons la page Web, les images suivantes seront affichées les unes après les autres.
Après plusieurs opérations, j'ai constaté qu'en déroulant, la page Web émettrait les requêtes suivantes. Cliquez sur l'une d'entre elles et vous pourrez voir les images Nombre total : 10000, nombre total de pages : 500.

Supprimons quelques URL et jetons un œil :

Crawler | Téléchargement par lots de fonds d'écran HD (code source + outils inclus)

Les liens ci-dessus n'ont que des paramètres de page différents, et ils augmentent dans l'ordre, ce qui est relativement convivial . Lors de la demande, ils sont en ordre. Il suffit de le parcourir.

Le problème du numéro de page a été résolu. Ensuite, analysez le lien de chaque image  :

Crawler | Téléchargement par lots de fonds d'écran HD (code source + outils inclus)

Nous voyons la liste des résultatslongueur. Exactement 20, Avec la même valeur per_page dans la requête, il ne fait aucun doute que le lien vers chaque image que nous recherchons est ici.
L'analyse des pages Web prend souvent du temps, mais dans l'ensemble, cela se passe bien. Nous explorons désormais officiellement les images.


2.1 Module d'importation

import time
import random
import json
import requests
from fake_useragent import UserAgent
heure : Timing
  • random : générer des nombres aléatoires
  • json : traiter les données au format json

  • requests : requêtes de pages Web

  • 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 | Téléchargement par lots de fonds d'écran HD (code source + outils inclus)


3. EXE爬取

exe工具运行结果:

Crawler | Téléchargement par lots de fonds d'écran HD (code source + outils inclus)

Remarque :
  • Essayez de ne pas explorer fréquemment pour éviter d'affecter l'ordre du réseau !

  • Les images sont des images haute définition provenant d'Internet. La vitesse d'exploration est liée au réseau et n'est généralement pas trop rapide.

  • Vous pouvez créer un pool de proxy pour explorer plus rapidement.

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer