IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau/Web Python Discussion :

Besoin d'aide avec un script


Sujet :

Réseau/Web Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mai 2023
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Besoin d'aide avec un script
    Bonjour à tous,

    Avant tout je m'excuse si je ne suis pas sur la bonne partie du forum.
    Je possède un wiki sur une marque de luxe, et pour l'alimenter j'ai besoin de récupérer un maximum d'images sur cette marque. Rien d'illégal car les images son toujours sur leurs serveurs, juste qu'il y a presque 650 millions de liens à checker.

    Le lien principal est https://cdn.yoox.biz/41/ à cette adresse s'ajoute l'id de l'image qui est 41XXXXXXYY_14_f.jpg ou X est un chiffre de 0 à 9 et Y une lettre de A à Z. La logique des liens est donc :

    https://cdn.yoox.biz/41/41000000AA_14_f.jpg
    https://cdn.yoox.biz/41/41000000AB_14_f.jpg
    https://cdn.yoox.biz/41/41000000AC_14_f.jpg
    ...
    https://cdn.yoox.biz/41/41000000ZZ_14_f.jpg
    https://cdn.yoox.biz/41/41000001AA_14_f.jpg
    https://cdn.yoox.biz/41/41000001AB_14_f.jpg

    et ainsi de suite jusqu'à 41999999ZZ_14_f.jpg

    Soit donc la bagatelle de presque 650 millions de liens. Tous les liens ne contiennent pas d'image. Il me faudrait donc un script qui checkerai donc chacun des lien et en enregistrant l'image dans un dossier (ou dans un doc texte peu importe) quand il y en a une.

    Avant de demander de l'aide, j'ai essayé de me dépatouiller avec le fameux ChatGPT, mais ce dernier ne comprends pas la logique malgré toutes mes explications (c'est d'ailleurs lui qui m'a dit qu'il fallait faire avec Python 3, étant un noob en la matière j'aurais pas deviné tout seul ^^). Voici le script le plus approchant que j'ai pu obtenir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    import requests
    import os
     
    url_base = 'https://cdn.yoox.biz/41/'
     
    for i in range(65, 91):
        for j in range(65, 91):
            for k in range(41000000, 42000000):
                url = url_base + str(k) + chr(i) + chr(j) + '_14_f.jpg'
                response = requests.head(url)
                if response.status_code == 200:
                    r = requests.get(url)
                    filename = url.split('/')[-1]
                    path = os.path.join('pictures', filename)
                    with open(path, 'wb') as f:
                        f.write(r.content)
                        print(f"{filename} saved successfully!")
                else:
                    print(f"{url} not found.")
    C'est le plus approchant mais ça check de 10 en 10. Pour info je me sers de Pydroid 3 sur mon téléphone android.
    Si quelqu'un pouvait passer par là pour me corriger le code ça serait formidable.
    Un gros merci pour votre aide

    nono

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 721
    Points : 1 876
    Points
    1 876
    Par défaut
    Bonjour,

    Vous comptez vraiment tester 650 millions de liens ?
    Avant même de vous lancer dans le coding, faites une projection pour évaluer si votre approche est réaliste.
    En imaginant que vous récupériez 20 images par seconde, à la louche ça prendrait plus d'un an si je calcule bien. On peut imaginer que ça aille plus vite, mais on est quand même dans cet ordre de grandeur.
    Ça ressemble plutôt à un exercice de force brute, donc peu performant et du gaspillage de ressources.
    Là vous avez un exemple, combien d'images avez-vous récupéré et combien de temps ça a pris ?

    Désolée de répondre à côté mais je pense que vous devez repenser le truc.
    N'est-il pas possible de se procurer le jeu d'images auprès du fournisseur ? Si vous avez un motif légitime, peut-être qu'il suffit de demander...

    Si vraiment vous persistez dans cette voie, je pense que ce serait mieux de se baser sur des tutos et les adapter à votre besoin plutôt que demander à Chatgpt de vous pondre la solution. Ce code est relativement mal foutu mais on ne peut pas lui en vouloir. Faire du scraping en masse implique des techniques plus fines, dont le parallélisme, c'est-à-dire qu'on ne se contente pas de faire une boucle, mais on fait plusieurs requêtes simultanées mais en veillant à ne pas trop solliciter le serveur (ce qui peut entraîner un ban). Le code sera un peu plus complexe.

    Mais il faudra quand même tester avec un petit échantillon pour avoir une idée du temps que ça prendrait.

  3. #3
    Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mai 2023
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Je vous remercie de votre réponse. En effet le facteur temps ne pas vraiment effleuré la tête, malgré tout c'est loin d'être un lien = 1 image (même très loin), et au pire je pourrais séquencer en modifiant l'ID de départ. A la limite c'est pas ce qui me dérange, c'est un site qui se construit sur plusieurs années, donc c'est pas grave. Pour le fabriquant, je n'ai jamais eu de réponse de leurs parts (je pense qu'ils s'en foutent un peu aussi).

Discussions similaires

  1. Besoin d'aide sur un script bash avec redirection et tail
    Par Invité dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 15/09/2014, 13h31
  2. Script bash - besoin d'aide avec sed & awk
    Par Obiwan31 dans le forum Unix
    Réponses: 1
    Dernier message: 23/04/2010, 10h11
  3. [ASA] J'ai besoin d'aide avec sybase et vb6 svp !!
    Par tibo830 dans le forum SQL Anywhere
    Réponses: 7
    Dernier message: 12/05/2006, 10h09
  4. Réponses: 2
    Dernier message: 29/08/2003, 17h52
  5. Besoin d'aide avec postgresql sous windows NT
    Par Chihuahua dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 18/07/2003, 08h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo