2

私は vb.net を使用していますが、クロールを拒否する URL がいくつかあります。クロールが null 応答を返すタイミングを検出したいのですが、その方法を理解するのに問題があるようです。

コード:

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 is null in Abotです。

ただし、それは結果を検出してコード化する方法を実際には説明していません。

4

1 に答える 1