Abot Crawler - Как обнаружить нулевой ответ

Я использую vb.net и имею несколько URL, которые отказываются сканировать. Я действительно хотел бы определить, когда сканирование возвращает нулевой ответ, но, похоже, возникла проблема с выяснением КАК.

Код:

Public Sub crawler_ProcessPageCrawlCompleted(sender As Object, e As PageCrawlCompletedArgs)

    pageNumber += 1
    Try

        Dim crawledPage As CrawledPage = e.CrawledPage


        If (Not (crawledPage.HttpWebResponse Is Nothing) And Not (crawledPage.WebException Is Nothing)) Or crawledPage.HttpWebResponse.StatusCode <> HttpStatusCode.OK Then
            CrawlFailed(e.CrawledPage.ToString, Failed)
        Else

            If String.IsNullOrEmpty(crawledPage.Content.Text) Then
                CrawlFailed(e.CrawledPage.ToString, NoContent)
            Else
                StoreContent(e)
            End If

        End If


    Catch ex As Exception
        RichTextBox1.AppendText(e.CrawledPage.ToString & " - " & ex.Message & vbCrLf)
    End Try

End Sub

Я добавил Catch-Try, чтобы перехватить это исключение, но я бы предпочел захватить его в своей подпрограмме CrawlFailed, чтобы что-то сделать с этим URL.

Я пытался выяснить, как использовать GetResponseStream и Stream.Null, но, похоже, не могу понять, как обнаружить пустой поток:(Я просто что-то упустил, но я погуглил везде и лучше Я могу найти это поток: crawledPage.HttpWebResponse является нулевым в Abot.

Однако - это не объясняет, КАК обнаруживать и кодировать результат.

1 ответ

У меня была та же самая проблема (ядро dotnet), с сеансом скрипача, я мог видеть, что ответ действительно прибыл. Но я также увидел, что сайту понадобилось много времени, чтобы вернуть результат.

Попробуйте установить для config.HttpRequestTimeoutInSeconds более высокое значение. Это решило мои проблемы.

Другие вопросы по тегам