excel - 如何使用 VBA 获取谷歌搜索的第一个搜索结果链接?
问题描述
在我的日常任务中,我目前必须搜索大量产品并收集有关这些产品的信息。所以我的想法是在谷歌上搜索产品,并通过从产品标题部分提取数据来从第一个搜索结果中获取信息,并为许多产品循环。
到目前为止,这是我的代码:
Sub SkuAutomation()
Dim ie As Object
'Navigates to google
Set ie = CreateObject("InternetExplorer.application")
ie.Visible = True
ie.Navigate "https://google.co.uk/search?q=" & Worksheets("sheet1").Cell(9, 4).Value & " " & Worksheets("sheet1").Cells(9, 2)
'Waits for page to load before next action
Do While ie.ReadyState <> READYSTATE_COMPLETE
Loop
End Sub
我只想添加一段代码,它要么点击谷歌返回的第一个链接,要么为我返回链接。然后我的想法是从该页面的产品标题部分刮取数据!尽管如此,仍然处于非常早期的阶段。
我只是一个初学者,所以任何类型的帮助都将不胜感激!提前谢谢了。
解决方案
您的里程可能会有所不同,但对于您提供的内容,您可以使用 CSS 选择器组合通过页面样式定位第一个链接。
我使用#search div.r [href*=http]
,但您可以简化为#search .r a
. 我有兴趣知道其中有http
一个href
。
是#
一个 id 选择器,一个空格" "
是一个后代选择器(选择前面元素的一个子元素,并且[]
是一个属性选择器。A"."
是一个类选择器,即按类名选择一个元素。
我正在寻找具有包含在其值中的href
属性的第一个元素,该元素的父元素元素的类名称为,其父元素的 id 为。http
div
r
search
Option Explicit
Public Sub GetLink()
Dim ie As New InternetExplorer
With ie
.Visible = True
.navigate "https://google.co.uk/search?q=Currys+241825"
While .Busy Or .readyState < 4: DoEvents: Wend
Debug.Print .document.querySelector("#search div.r [href*=http]").href
.Quit
End With
End Sub
推荐阅读
- python - 如何以格式(mm-dd-yyyy)在 django 模型中创建日期字段
- react-native - 应用程序剪辑大小对于本机应用程序来说太大了
- laravel - Livewire\Exceptions\ComponentNotFoundException - 无法找到组件:[Livewire.Tasks-Board]
- java - 在Java中将值从较大的数组复制到较小的数组
- range - 在 WinBugs 模型中定义一个具有不同上界的范围
- python - plt.show() 在 Anaconda 上的环境中不起作用
- r - R中栅格堆栈的分位数函数似乎返回不正确的值
- python - Pandas - 遍历工作表
- laravel - 直接在组件类中访问控制器变量 - Laravel
- javascript - 反应钩子更新数组不起作用