Excel VBA pour ouvrir la première page de résultat de recherche de google
J'ai pour ouvrir la page de recherche google à l'aide des Macros excel. Je suis en mesure d'ouvrir la page de recherche google, après je donne mon paramètres de recherche dans excel. Cependant, ma tâche est d'ouvrir le premier est retourné page de résultat de recherche, et faire de l'extraction des données dans cette page. J'ai utilisé le code ci-dessous.
Suppose que si j'ai cherché "Sachin Tendulkar wiki", je devrais être en mesure d'ouvrir la première page dans les résultats de recherche. Mon code pour l'instant est comme ci-dessous.
Dim ie As InternetExplorer
Dim RegEx As RegExp, RegMatch As MatchCollection
Dim MyStr As String
Dim pDisp As Object
Set ie = New InternetExplorer
Set RegEx = New RegExp
Dim iedoc As Object
'Search google for "something"
ie.Navigate "http://www.google.com.au/search?hl=en&q=sachin+tendulkar+wiki&meta="
'Loop unitl ie page is fully loaded
Do Until ie.ReadyState = READYSTATE_COMPLETE
Loop
MyStr = ie.Document.body.innertext
Set RegMatch = RegEx.Execute(MyStr)
'If a match to our RegExp searchstring is found then launch this page
If RegMatch.Count > 0 Then
ie.Navigate RegMatch(0)
Do Until ie.ReadyState = READYSTATE_COMPLETE
Loop
MsgBox "Loaded"
'show internet explorer
ie.Visible = True
'Private Sub ie_DocumentComplete(ByVal pDisp As Object, URL As Variant)
Set iedoc = ie.Application.Document
'iedoc.getElementById("divid").Value = "poS0"
'MsgBox iedoc
'ie.Navigate iedoc.getelementsbytagname("ol")(0).Children(0).getelementsbytagname("a")(0).href
ie.Navigate iedoc.getelementsbyclassname("divid")("poS0").href
Else
MsgBox "No linkedin profile found"
End If
Set RegEx = Nothing
Set ie = Nothing
J'ai regardé le source de la page dans la page de recherche google. J'ai un particulier div id = "pos0", qui est l'id du premier résultat de recherche. Je dois faire de l'IE accédez à la page dont l'div id = "pos0". Je ne suis pas en mesure d'accomplir cette chose en VBA. Peut quelqu'un m'aider?
Merci & Cordialement,
Ramesh
Salut Patashu, Merci pour la réponse. Le truc c'est que je ne vais pas être sachant que le premier résultat de recherche URL que mes paramètres de recherche va revenir. Je sais pour sûr que l'URL du premier résultat de recherche a div id = "pos0". Je veux accéder à l'URL correspondant à cette section à l'aide de VBA. S'il vous plaît laissez-moi savoir si vous avez besoin de plus d'informations.
Vous n'avez pas besoin de connaître l'URL, vous pouvez consulter la page et de voir que les éléments environnants de la première URL sont toujours dans le même ordre. Donc, dans votre code VBA vous pouvez naviguer dans le DOM, allez en bas de cet élément, de découvrir ce que l'url est et à nourrir que pour ie.Naviguer. Espérons que cette aide
Salut Patashu, encore une Fois je vous remercie de votre aide. Pouvez-vous svp me dire comment naviguer dans le DOM? Je veux dire que dans mon code j'ai essayé quelque chose comme ça. iedoc.getElementById("divid").Value = "poS0" Mais ça ne fonctionnait pas.
Salut, vous pouvez lire au sujet de DOM ici: w3schools.com/htmldom/default.asp
OriginalL'auteur Ramesh | 2013-02-06
Vous devez vous connecter pour publier un commentaire.
Vous avez un couple de questions. Tout d'abord pour accéder au document de l'objet de son
ie.Document
pasie.Application.Document
. J'ai mis à jour votre code pour montrer comment la première url peut rapidement être trouvé en utilisant une sous-chaîne.Content d'avoir pu aider et comme toujours, n'oubliez pas de le marquer comme réponse 🙂
OriginalL'auteur Sorceri
Vous pouvez envisager d'utiliser l'objet xmlHTTP au lieu d'utiliser IE.
Les requêtes HTTP à un plus facile et beaucoup plus rapide
Ci-dessous est un exemple de code
HTH
Santosh
OriginalL'auteur Santosh