Html Excel VBA浏览器抓取:网站搜索框没有值

Html Excel VBA浏览器抓取:网站搜索框没有值,html,vba,web-scraping,Html,Vba,Web Scraping,我正在尝试用特定网站()交叉检查大量数据。我才刚刚开始,对VBA的整个过程还很陌生。稍后的目标是根据excel中较大的列表搜索许多公司名称,并获取它们的成立日期。但现在,我开始只使用一个名称来运行它,我在主代码中遇到了问题,因为HTML代码中没有固有的输入值: <input name="ctl00$ContentPlaceHolder1$frmEntityName" type="text" id="ctl00_ContentPlaceHol

我正在尝试用特定网站()交叉检查大量数据。我才刚刚开始,对VBA的整个过程还很陌生。稍后的目标是根据excel中较大的列表搜索许多公司名称,并获取它们的成立日期。但现在,我开始只使用一个名称来运行它,我在主代码中遇到了问题,因为HTML代码中没有固有的输入值:

<input name="ctl00$ContentPlaceHolder1$frmEntityName" type="text" id="ctl00_ContentPlaceHolder1_frmEntityName" tabindex="4" size="30" maxlength="120" class="txtNormal" onkeyup="KeyEvent1(this.id)">

我尝试了以下代码:

Sub click_search()

Dim i As SHDocVw.InternetExplorer
Set i = New InternetExplorer
i.Visible = True

i.Navigate "https://icis.corp.delaware.gov/Ecorp/EntitySearch/NameSearch.aspx"

Do While i.ReadyState <> READYSTATE_COMPLETE

Loop

Dim idoc As MSHTML.HTMLDocument
Set idock = i.Document

idoc.getElementsByTagName("input").Item("ctl00$ContentPlaceHolder1$frmEntityName").Value = "10X Genomics Inc"


End Sub
Sub-click_search()
Dim i作为SHDocVw.InternetExplorer
Set i=新的InternetExplorer
i、 可见=真
i、 导航“https://icis.corp.delaware.gov/Ecorp/EntitySearch/NameSearch.aspx"
在i.ReadyState ReadyState\u完成时执行
环
Dim idoc作为MSHTML.HTMLDocument
设置idock=i.Document
idoc.getElementsByTagName(“输入”).Item(“ctl00$contentPlaceholder 1$frmEntityName”).Value=“10X Genomics Inc”
端接头
我认为问题在于,HTML代码一开始并没有固有的值=“但是它只有在您编写之后才会出现在HTML代码中。如果有人知道如何解决这个问题,然后点击搜索按钮,这将是巨大的帮助!我收到的错误是“对象变量或未设置块变量”
提前谢谢

始终在每个VBA代码文件的顶部使用Option Explicit

如果所讨论的网页包含您感兴趣的元素的ID,请使用getElementById()访问它们。此代码可以工作,但找不到任何记录

Option Explicit
Sub click_search()
Dim i As SHDocVw.InternetExplorer
Dim idoc As MSHTML.HTMLDocument

Set i = New InternetExplorer
i.Visible = True
i.Navigate "https://icis.corp.delaware.gov/Ecorp/EntitySearch/NameSearch.aspx"

Do While i.ReadyState <> READYSTATE_COMPLETE
Loop

Set idoc = i.Document
idoc.getElementById("ctl00_ContentPlaceHolder1_frmEntityName").Value = "10X Genomics Inc"
idoc.getElementById("ctl00_ContentPlaceHolder1_frmFileNumber").Value = "1"
idoc.getElementById("ctl00_ContentPlaceHolder1_btnSubmit").Click
End Sub
选项显式
子单击搜索()
Dim i作为SHDocVw.InternetExplorer
Dim idoc作为MSHTML.HTMLDocument
Set i=新的InternetExplorer
i、 可见=真
i、 导航“https://icis.corp.delaware.gov/Ecorp/EntitySearch/NameSearch.aspx"
在i.ReadyState ReadyState\u完成时执行
环
设置idoc=i.Document
idoc.getElementById(“ctl00\u内容占位符1\u frmEntityName”).Value=“10X基因组公司”
idoc.getElementById(“ctl00\u ContentPlaceHolder1\u frmFileNumber”).Value=“1”
idoc.getElementById(“ctl00\u内容占位符1\u btnSubmit”)。单击
端接头

这仍然会产生相同的错误:对象变量或with block variable not SET谢谢提示!我编辑了我的问题,但我仍然收到相同的错误,尽管我使用了集合作为您的代码。始终在每个代码文档的顶部使用Option Explicit。如果使用该选项,您会发现一个输入错误:Set idock=i.Document。纠正错误,它就工作了!上面的代码有效。请做一个绅士,并将其标记为回答。干杯!非常感谢你的帮助!