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

Macros et VBA Excel Discussion :

recuperer une image sur le net


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    technicien qualité
    Inscrit en
    Octobre 2021
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : technicien qualité
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Octobre 2021
    Messages : 16
    Par défaut recuperer une image sur le net
    Bonjour, je suis en train de creer un programme pour repertorier tous les lmivres de madame.
    J'aimerais qu'en fonction de l'auteur et du nom du livre (ex: Harlan Coben sans un mot), ma USF affiche dans une image la jaquette du livre.
    je ne sais pas comment faire ni meme si c'est possible...
    dans l'exemple fourni, j'ai telecharger moi meme la jaquette mais je souhaite automatisé cette tache.
    merci pour toute l'aide apportée!
    Nom : Capture.JPG
Affichages : 287
Taille : 136,1 Ko

  2. #2
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 245
    Par défaut
    hello,
    as-tu un ou plusieurs sites où récupérer ces images (ex Babelio) ? Dans quel format (png? jpg?) et quelle taille ?
    Ami calmant, J.P

  3. #3
    Membre averti
    Homme Profil pro
    technicien qualité
    Inscrit en
    Octobre 2021
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : technicien qualité
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Octobre 2021
    Messages : 16
    Par défaut
    justement je ne sais pas où aller rechercher ces images.....
    En JPG serait tres bien et la taille je m'en fou un peu...

  4. #4
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 245
    Par défaut
    Hello,
    voici un exemple de code qui utilise un formulaire constitué de :
    - un contrôle Image pour afficher une image de la couverture du livre
    - un contrôle Textbox pour saisir le livre à rechercher
    - un contrôle Textbox pour afficher l'url de l'image de la couverture du livre et le résumé du livre


    Il faut créer un module avec la déclaration d'Api windows dedans :
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    #If VBA7 And Win64 Then
        Public Declare PtrSafe Function URLDownloadToFile Lib "urlmon" _
          Alias "URLDownloadToFileA" ( _
            ByVal pCaller As LongPtr, _
            ByVal szURL As String, _
            ByVal szFileName As String, _
            ByVal dwReserved As LongPtr, _
            ByVal lpfnCB As LongPtr _
          ) As Long
     
        Public Declare PtrSafe Sub Sleep Lib "kernel32" _
               (ByVal dwMilliseconds As LongPtr)
    #Else
     
     
        Public Declare Function URLDownloadToFile Lib "urlmon" _
          Alias "URLDownloadToFileA" ( _
            ByVal pCaller As Long, _
            ByVal szURL As String, _
            ByVal szFileName As String, _
            ByVal dwReserved As Long, _
            ByVal lpfnCB As Long _
          ) As Long
     
        Public Declare Sub Sleep Lib "kernel32" _
               (ByVal dwMilliseconds As Long)
     
     
    #End If
    Le principe du code :
    On utilise l'objet COM Internet Explorer pour effectuer la recherche.
    On lance une recherche par bing du livre sur le site Babelio (par Google il y a des soucis de cookies)
    Normalement la première réponse est la page qui nous intéresse ( peut ne pas marcher suivant la saisie du texte de recherche)
    On ouvre la page qui correspond à la première réponse.
    On vient récupérer le résumé et le lien de l'image de la couverture
    On télécharge l'image de la couverture dans un répertoire temporaire et on affiche alors cette image dans le contrôle image.

    Le code du formulaire :
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    Const RepTemp = "D:\temp\"
    Private Sub CmdGo_Click()
    Dim IEDoc As Object
    Dim objResults As Object, objH2 As Object, elem As Object
    Dim livre As Object, image As Object, livreResume As Object
    Dim url As String, urlLivre As String, imgName As String
    Dim IE As Object
    Set IE = CreateObject("InternetExplorer.application")
    url = "https://www.bing.com/search?q=" & _
          WorksheetFunction.EncodeURL("Babelio " & _
          Recherche.Text)
    IE.Navigate url
    IE.Visible = False
       Do While IE.ReadyState <> 4 Or IE.Busy
          DoEvents
          Sleep (100)
       Loop
    Set IEDoc = IE.Document
    Set objResults = IEDoc.getElementById("b_results")
    Set objH2 = objResults.getElementsByTagName("h2")
    For Each elem In objH2
        Debug.Print elem.innerText
        If Not elem.getElementsByTagName("a")(0) Is Nothing Then
           Debug.Print elem.getElementsByTagName("a")(0).href
           If InStr(1, elem.getElementsByTagName("a")(0).href, "www.babelio.com/livres") <> 0 Then
              urlLivre = elem.getElementsByTagName("a")(0).href
              Exit For
           End If
        End If
    Next
    If urlLivre <> "" Then
        Result.Text = urlLivre
        IE.Navigate urlLivre
        Do While IE.ReadyState <> 4 Or IE.Busy
          DoEvents
          Sleep (100)
        Loop
        Set IEDoc = IE.Document
        Set livre = IEDoc.getElementsByClassName("livre_con")(0)
        Set image = livre.getElementsByTagName("img")(0)
        Debug.Print image.src
        Set livreResume = IEDoc.getElementsByClassName("livre_resume")(0)
        Result.Text = image.src + vbCrLf + livreResume.innerText
        ' Recup image
        imgName = Mid(image.src, InStrRev(image.src, "/") + 1)
        URLDownloadToFile 0, image.src, RepTemp & imgName, 0, 0
        Image1.Picture = LoadPicture(RepTemp & imgName)
    End If
    IE.Quit
    End Sub
    Nom : RechercheLivre.gif
Affichages : 461
Taille : 71,4 Ko



    Ami calmant, J.P

  5. #5
    Membre averti
    Homme Profil pro
    technicien qualité
    Inscrit en
    Octobre 2021
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : technicien qualité
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Octobre 2021
    Messages : 16
    Par défaut
    wahou !!!
    Bon j'ai plus qu'a integrer ca.... J'aurais jamais trouver tout seul.
    Je te remercie bcp !

  6. #6
    Membre averti
    Homme Profil pro
    technicien qualité
    Inscrit en
    Octobre 2021
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : technicien qualité
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Octobre 2021
    Messages : 16
    Par défaut
    J'ai un soucis pour mettre le code là ou il faut...

    j'ai aussi un probleme "objet requis" sur url:
    Nom : url.JPG
Affichages : 317
Taille : 35,1 Ko


    Est ce que ce serait bcp demander de ma faire un fichier tout pret?? ca devient compliquer a integrer

    merci encore

  7. #7
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 245
    Par défaut
    en pièce jointe les fichiers du formulaire
    Ne pas oublier de mettre les déclarations d'Api Windows dans un module
    Fichiers attachés Fichiers attachés

  8. #8
    Membre averti
    Homme Profil pro
    technicien qualité
    Inscrit en
    Octobre 2021
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : technicien qualité
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Octobre 2021
    Messages : 16
    Par défaut
    Ça marche merci beaucoup !!!
    mais comment tu as appris à coder comme cela?

    et maintenant comment faire pour trouver le nom de l'auteur à coup sûr??
    J'ai essayé mais ça marche pour certains mais pas pour d'autres...
    merci encore pour ton aide

  9. #9
    Membre averti
    Homme Profil pro
    technicien qualité
    Inscrit en
    Octobre 2021
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : technicien qualité
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Octobre 2021
    Messages : 16
    Par défaut
    du coup je cherche aussi comment recuperer le nom de l'auteur et potentiellement aussi le genre (Thriller, etc....)

    merci encore

    Citation Envoyé par jurassic pork Voir le message
    Hello,
    voici un exemple de code qui utilise un formulaire constitué de :
    - un contrôle Image pour afficher une image de la couverture du livre
    - un contrôle Textbox pour saisir le livre à rechercher
    - un contrôle Textbox pour afficher l'url de l'image de la couverture du livre et le résumé du livre


    Il faut créer un module avec la déclaration d'Api windows dedans :
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    #If VBA7 And Win64 Then
        Public Declare PtrSafe Function URLDownloadToFile Lib "urlmon" _
          Alias "URLDownloadToFileA" ( _
            ByVal pCaller As LongPtr, _
            ByVal szURL As String, _
            ByVal szFileName As String, _
            ByVal dwReserved As LongPtr, _
            ByVal lpfnCB As LongPtr _
          ) As Long
     
        Public Declare PtrSafe Sub Sleep Lib "kernel32" _
               (ByVal dwMilliseconds As LongPtr)
    #Else
     
     
        Public Declare Function URLDownloadToFile Lib "urlmon" _
          Alias "URLDownloadToFileA" ( _
            ByVal pCaller As Long, _
            ByVal szURL As String, _
            ByVal szFileName As String, _
            ByVal dwReserved As Long, _
            ByVal lpfnCB As Long _
          ) As Long
     
        Public Declare Sub Sleep Lib "kernel32" _
               (ByVal dwMilliseconds As Long)
     
     
    #End If
    Le principe du code :
    On utilise l'objet COM Internet Explorer pour effectuer la recherche.
    On lance une recherche par bing du livre sur le site Babelio (par Google il y a des soucis de cookies)
    Normalement la première réponse est la page qui nous intéresse ( peut ne pas marcher suivant la saisie du texte de recherche)
    On ouvre la page qui correspond à la première réponse.
    On vient récupérer le résumé et le lien de l'image de la couverture
    On télécharge l'image de la couverture dans un répertoire temporaire et on affiche alors cette image dans le contrôle image.

    Le code du formulaire :
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    Const RepTemp = "D:\temp\"
    Private Sub CmdGo_Click()
    Dim IEDoc As Object
    Dim objResults As Object, objH2 As Object, elem As Object
    Dim livre As Object, image As Object, livreResume As Object
    Dim url As String, urlLivre As String, imgName As String
    Dim IE As Object
    Set IE = CreateObject("InternetExplorer.application")
    url = "https://www.bing.com/search?q=" & _
          WorksheetFunction.EncodeURL("Babelio " & _
          Recherche.Text)
    IE.Navigate url
    IE.Visible = False
       Do While IE.ReadyState <> 4 Or IE.Busy
          DoEvents
          Sleep (100)
       Loop
    Set IEDoc = IE.Document
    Set objResults = IEDoc.getElementById("b_results")
    Set objH2 = objResults.getElementsByTagName("h2")
    For Each elem In objH2
        Debug.Print elem.innerText
        If Not elem.getElementsByTagName("a")(0) Is Nothing Then
           Debug.Print elem.getElementsByTagName("a")(0).href
           If InStr(1, elem.getElementsByTagName("a")(0).href, "www.babelio.com/livres") <> 0 Then
              urlLivre = elem.getElementsByTagName("a")(0).href
              Exit For
           End If
        End If
    Next
    If urlLivre <> "" Then
        Result.Text = urlLivre
        IE.Navigate urlLivre
        Do While IE.ReadyState <> 4 Or IE.Busy
          DoEvents
          Sleep (100)
        Loop
        Set IEDoc = IE.Document
        Set livre = IEDoc.getElementsByClassName("livre_con")(0)
        Set image = livre.getElementsByTagName("img")(0)
        Debug.Print image.src
        Set livreResume = IEDoc.getElementsByClassName("livre_resume")(0)
        Result.Text = image.src + vbCrLf + livreResume.innerText
        ' Recup image
        imgName = Mid(image.src, InStrRev(image.src, "/") + 1)
        URLDownloadToFile 0, image.src, RepTemp & imgName, 0, 0
        Image1.Picture = LoadPicture(RepTemp & imgName)
    End If
    IE.Quit
    End Sub
    Nom : RechercheLivre.gif
Affichages : 461
Taille : 71,4 Ko



    Ami calmant, J.P

  10. #10
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 245
    Par défaut
    Hello,
    Citation Envoyé par mikl-dev Voir le message
    du coup je cherche aussi comment recuperer le nom de l'auteur et potentiellement aussi le genre (Thriller, etc....)
    Pour l'auteur c'est faisable mais pour le genre il n'y a pas forcément l'information. Chez Babelio il y a les étiquettes. Exemple pour le vertige de la peur :
    suspense thriller thriller psychologique romans policiers et polars intrigant attentats ascenseur meurtre littérature américaine littérature canadienne
    Chez Amazon je n'ai pas vu ce genre de renseignement.
    Ami calmant, J.P

Discussions similaires

  1. recuperer le contenu d'une image sur une page web
    Par my_oliver dans le forum MFC
    Réponses: 0
    Dernier message: 23/04/2010, 08h36
  2. Impossible d'afficher une image sur une page ASP.Net
    Par Jean-Claude Dusse dans le forum ASP.NET
    Réponses: 2
    Dernier message: 31/01/2009, 20h23
  3. recuperer une image sauvegardée sur disque dur
    Par tatikambwa dans le forum C#
    Réponses: 3
    Dernier message: 28/05/2008, 11h21
  4. [moteur de recherche] trouver une image sur le net
    Par 123quatre dans le forum Internet
    Réponses: 1
    Dernier message: 05/07/2007, 22h56
  5. [VB6] mettre une image sur un boutton
    Par dim dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 15/02/2004, 01h28

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