浏览到网页,在搜索栏中输入文本,然后搜索..但是当我单击搜索按钮时,文本消失了



第一篇文章在这里。尝试寻找类似的帖子,但无法找到任何东西。

我对 VBA 有点陌生。我正在尝试使用 Excel 导航到特定网站,单击单选按钮,键入一些文本作为搜索字符串,然后搜索该文本。当我浏览代码时,一切似乎都很好,但是当我单击搜索按钮时,我的搜索字符串被清空,并且我收到一条错误消息,告诉我输入搜索条件。代码如下:

Sub FranklinCountyWebsite()
'References: Microsoft Internet Controls, Microsoft HTML Object Library
Dim IE As New SHDocVw.InternetExplorer
Dim HTMLDoc As MSHTML.HTMLDocument
IE.Visible = True
IE.navigate "https://sheriff.franklincountyohio.gov/real-estate/"
Do While IE.readyState <> READYSTATE_COMPLETE
Loop
Set HTMLDoc = IE.document
HTMLDoc.getElementById("ctl00_SheetContentPlaceHolder_c_search1_rblSrchOptions_3").Click
HTMLDoc.getElementById("ctl00_SheetContentPlaceHolder_c_search1_SrchSearchString").Value = "43215"
HTMLDoc.getElementById("ctl00_SheetContentPlaceHolder_c_search1_btnSearch").Click
End Sub

有趣的是,如果我访问富兰克林县网站并手动输入文本,然后点击搜索,一切正常。我忽略了什么容易的事情吗?

您可以使用serverxmlhttp请求尝试相同的方法,这比IE快得多。下面的脚本可以将您引导到您希望从中获取数据的目标页面。

Sub Fetch_Item()
Dim post As Object, qsp$, S$
qsp = "q=searchType%3dZipCode%26searchString%3d43215%26foreclosureType%3d%26sortType%3daddress%26saleDateFrom%3d4%2f30%2f2017+12%3a00%3a00+AM%26saleDateTo%3d10%2f30%2f2018+11%3a59%3a59+PM"
With New ServerXMLHTTP
.Open "GET", "https://sheriff.franklincountyohio.gov/real-estate/results.aspx?" & qsp, False
.setRequestHeader "User-Agent", "Mozilla/5.0"
.send
S = .responseText
End With
With New HTMLDocument
.body.innerHTML = S
Set post = .getElementById("ctl00_SheetContentPlaceHolder_C_searchresults_reSaleSummary_ctl00_lblAddrHeader")
MsgBox post.innerText
End With
End Sub

输出:

155-157 CLEVELAND AVE COLUMBUS, OH 43215 010054688, 010055721

要添加到库中的引用:

Microsoft XML, V6.0
Microsoft HTML Object Library

最新更新