Numéros de téléphone google vers excel

Numéros de téléphone google vers excel - VB/VBA/VBS - Programmation

Marsh Posté le 10-06-2016 à 18:42:15    

Bonjour,
 
J'ai un fichier excel avec une liste d'entreprises.
Pour chacune d'elles, je fais une recherche sur google, ça m'affiche sur la droite l'entreprise avec son adresse et numéro de téléphone.
Y a t-il un moyen via une macro ou autre de récupérer automatiquement ces deux infos dans mon fichier excel ?
Colonne 1 : entreprise
Colonne 2 : adresse
Colonne 3 : numéro
 
Merci !


---------------
Ventes : http://forum.hardware.fr/forum2.ph [...] #t16617873
Reply

Marsh Posté le 10-06-2016 à 18:42:15   

Reply

Marsh Posté le 17-06-2016 à 14:34:24    

Bonjour,
 
Même besoin ici.
 
Pour info, j'ai fait quelques recherches sur Google, et ai trouvé une macro qui se rapproche de ce dont nous avons besoin.
Ici la macro recherche le nom de l'entreprise en cellule A1, et inscrit en cellule A3 le lien vers le site. (et en A2 c'est un mix entre le nom de l'entreprise  et le site trouvé)
 
Il faudrait adapter cette macro pour recevoir le numéro de téléphone et l'adresse mais je n'y connais rien...
 
 
 
Dim url As String, lastRow As Long
    Dim XMLHTTP As Object, html As Object, objResultDiv As Object, objH3 As Object, link As Object
    Dim start_time As Date
    Dim end_time As Date
 
    lastRow = Range("A" & Rows.Count).End(xlUp).Row
 
    Dim cookie As String
    Dim result_cookie As String
 
    start_time = Time
    Debug.Print "start_time:" & start_time
 
    For i = 1 To lastRow
 
        url = "https://www.google.co.in/search?q=" & Cells(i, 1) & "&rnd=" & WorksheetFunction.RandBetween(1, 10000)
 
        Set XMLHTTP = CreateObject("MSXML2.serverXMLHTTP" )
        XMLHTTP.Open "GET", url, False
        XMLHTTP.setRequestHeader "Content-Type", "text/xml"
        XMLHTTP.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; rv:25.0) Gecko/20100101 Firefox/25.0"
        XMLHTTP.send
 
            Set html = CreateObject("htmlfile" )
        html.body.innerHTML = XMLHTTP.ResponseText
        Set objResultDiv = html.getelementbyid("rso" )
        Set objH3 = objResultDiv.getelementsbytagname("H3" )(0)
        Set link = objH3.getelementsbytagname("a" )(0)
 
 
        str_text = Replace(link.innerHTML, "<EM>", "" )
        str_text = Replace(str_text, "</EM>", "" )
 
        Cells(i, 2) = str_text
        Cells(i, 3) = link.href
         
        DoEvents
    Next
 
    end_time = Time
    Debug.Print "end_time:" & end_time
 
    Debug.Print "done" & "Time taken : " & DateDiff("n", start_time, end_time)
    MsgBox "done" & "Time taken : " & DateDiff("n", start_time, end_time)

Reply

Marsh Posté le 17-06-2016 à 16:32:27    

Pour extraire autre chose du résultat Google faut modifier cette partie

Code :
  1. Set objResultDiv = html.getelementbyid("rso" )
  2. Set objH3 = objResultDiv.getelementsbytagname("H3" )(0)
  3. Set link = objH3.getelementsbytagname("a" )(0)


C'est des fonctions qui existent aussi en Javascript, on peut regarder par là pour avoir de la doc. Mais c'est peu fiable, car si Google modifie son site ça ne fonctionnera plus. Je modifierai aussi l'adresse (là c'est Google Inde),  genre "https://www.google.fr/search?q=". Je ne vois pas l'intérêt du paramètre "rnd".
 
Je ne peux pas aider d'avantage car je n'ai pas Excel. Perso je ferais ça en perl avec en sortie un fichier .csv à importer sous Excel.
 
En passant, il existe une API pour les pages jaunes, c'est peut-être mieux? http://evollia.com/2010/09/yellowa [...] -site-web/

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed