如何使用 VBA 将 Excel 工作表中的信息输入到特定网站的搜索栏中?



我正在尝试自动化一个过程,该过程将我存储在 excel 工作表中的信息输入到下面代码中看到的网站。我正在尝试识别搜索栏以运行测试,以查看我的信息是否会在我处理搜索按钮之前出现,但在最后一行代码中出现错误。我一直试图识别搜索栏的方法是检查网站上的元素。我对这个很陌生,我已经尝试了一些事情,但我不确定我还应该做什么。

我的项目的下一步是根据我在搜索栏中输入的信息收集一个生成的数字,然后将其输入回 excel 工作表,然后再转到下一行信息并重复相同的过程。

提前谢谢你!

Dim ie As New SHDocVw.InternetExplorer
Dim website As String
website = "https://cardmavin.com/category/football"
ie.navigate website
ie.Visible = True
Do While ie.readyState <> READYSTATE_COMPLETE

Loop
'input name
Dim idoc As MSHTML.HTMLDocument
Set idoc = ie.document
idoc.all.q.Value = "Test"

我可以建议不要自动化Internet Explorer,而是使用后台HTTP对象吗?在许多情况下,它变得比尝试查找按钮和搜索栏并等待IE加载等要容易得多。

例如,例如,当您在搜索栏中输入文本并按"搜索"时,它实际上会将这些搜索词发送到下面例程中的地址。您无需导航到搜索页面并识别元素...

Sub Example()
Dim httpReq As Object
Set httpReq = CreateObject("MSXML2.ServerXMLHTTP")
httpReq.Open "GET", "https://mavin.io/search?q=2002+Mattel"
httpReq.Send
MsgBox httpReq.responseText
End Sub

URLhttps://mavin.io/search?q=是请求发布到的地方,它后面的内容是我正在使用的搜索词("2002"和"美泰",其中空格成为+(

httpReq响应可以作为文本或数据读取,也可以直接放入HTML文档中进行分析。没有创建IE浏览器,没有加载时间,没有下载图形等。这只是对HTML文档的简单请求,没有随之而来的所有垃圾。

该元素有一个 id,所以我会使用它:

idoc.getElementById("search-field").Value = "Test"

最新更新