Просмотр веб-страницы, ввод текста в строку поиска и поиск ... но текст исчезает, когда я нажимаю кнопку поиска - PullRequest
0 голосов
/ 30 апреля 2018

Первый пост здесь. Пробовал искать похожие посты, но ничего не смог найти.

Я немного новичок в 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

Интересно, что если я захожу на веб-сайт округа Франклин и набираю текст вручную, а затем нажимаю «Поиск», все работает нормально. Есть что-то простое, что я упускаю из виду?

1 Ответ

0 голосов
/ 30 апреля 2018

Вы можете попробовать то же самое, используя запрос 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
...