Невозможно установить настроенное время ожидания в запросе ServerXMLHTTP - PullRequest
1 голос
/ 22 марта 2019

Я написал скрипт в vba, чтобы вычистить первый пост с сайта после отправки запроса по доверенности. Я использовал прокси (из списка прокси) при выполнении http-запроса в моем скрипте vba, чтобы проверить длину всех сообщений. Когда запрос успешно отправлен, скрипт должен проанализировать первый пост и используемый прокси и выйти из цикла.

Иногда скрипт работает правильно, но в большинстве случаев скрипту требуются годы, чтобы завершить операцию, даже если я определил timeout перед отправкой запроса. На данный момент я очень сомневаюсь, могу ли я правильно заполнить параметр timeout. Я ожидаю, что сценарий будет ждать до этого времени любого ответа, иначе он выдаст ошибку timeout и перейдет к следующему запросу.

Я уже написал:

Sub HandleTimeOut()
    Dim Http As New ServerXMLHTTP60, Html As New HTMLDocument
    Dim elem As Object, proxyList As Variant, oProxy As Variant

    proxyList = [{"50.246.120.125:8080","198.204.253.115:3128","98.172.142.99:8080","207.188.231.141:8080"}]

    For Each oProxy In proxyList
        With Http
            .Open "GET", "https://stackoverflow.com/questions/tagged/web-scraping", True
            .setRequestHeader "User-Agent", "Mozilla/5.0"
            .setProxy 2, oProxy
            .setTimeouts 600000, 600000, 15000, 15000
            On Error Resume Next
            .send
            While .readyState < 4: DoEvents: Wend
            Html.body.innerHTML = .responseText
            Set elem = Html.querySelectorAll(".summary .question-hyperlink")
            On Error GoTo 0
        End With

        If elem.Length > 0 Then
            [A1] = oProxy
            [B1] = elem(0).innerText
            Exit For
        End If
    Next oProxy
End Sub

Как правильно установить timeout на пять секунд?

1 Ответ

1 голос
/ 22 марта 2019
...