Option Explicit
Private chr As Selenium.ChromeDriver
Sub Test()
Dim i As Long
Dim lastrow As Long
lastrow = Sheet1.Cells(Rows.Count, "A").End(xlUp).row
For i = 2 To lastrow
Dim mykeyword As String
mykeyword = Sheet1.Cells(i, 1).Value
Set chr = New Selenium.ChromeDriver
chr.Start
chr.Get "https://www.google.com/search?q=" & mykeyword
chr.Wait 1000
Dim Mylinks As Selenium.WebElements
Dim Mylink As Selenium.WebElement
Set Mylinks = chr.FindElementsByCss("div.yuRUbf.a")
For Each Mylink In Mylinks
If LCase(Mylink.Attribute("data-ved")) = "2ahUKEwjSuvfI1MP9AhWu-TgGHRNrAB4QFnoECAkQAQ"
Then
Debug.Print Mylink.Attribute("href")
Exit For
End If
Next Mylink
If i = lastrow Then
chr.Quit
End If
Next i
End Sub
用上面的代码,我试图获取所有的href链接后,谷歌页面加载该特定的关键字.宏正在运行,它是采取所有的关键字也从excel表,但它不是获取href链接预期.我试图运行这个关键字只是一个示例“608- 2 Z网站:fagbearing.cc和文件类型:pdf”,这也打开了链接,即.
"https://www.google.com/search?q=608-2Z+site%3Afagbearing.cc+AND+filetype%3Apdf&rlz=1C1JJTC_enIN1044IN1044&oq=608-2Z+site%3Afagbearing.cc+AND+filetype%3Apdf&aqs=chrome.0.69i59.735j0j7&sourceid=chrome&ie=UTF-8"
在那之后,它需要获取加载后产生的2个链接,但它没有。它们是这些链接...
1条答案
按热度按时间von4xj4u1#
这个代码工作,因为它去...
使用Debug.Print时出现了一个奇怪的问题,所以我改为使用文本文件作为输出。
在搜索关键字之前,我必须先单击接受cookie横幅。
然后,代码会发现大量带有href属性的“a”标记,但并非所有标记都具有data-ved属性。
在我看到的页面中,没有找到MyLink.属性(“数据-ved”)=“2ahUKEwjSuvfI 1 MP 9AhWu-TgGHRNrAB 4 QFnoECAkQAQ”。
我用关键字“a”、“B”和“c”进行搜索。
我使用了Microsoft支持的VBA类型库
https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
我使用的是MS Edge -Selenium版本必须与您安装的Edge版本匹配。
边缘版本110.0.1587.57
您将需要浏览到适用于您的32位或64位计算机的类型库。
工具〉参考〉Selenium类型库(Selenium64.tlb)