HTMLAgilityPackを使用してHTMLページを解析しています。しかし、ある時点で私は間違ったデータ(この特定の場合はイメージ)を解析しようとしますが、ofcは明白な理由で失敗します。VB.NetでHTMLAgilitypackでエラーを防止する
Private Sub parseHtml(ByVal content As String, ByVal url As String)
Try
Dim contentHash As String = hashGenerator.ComputeHash(content, "SHA1")
Dim doc As HtmlDocument = New HtmlDocument()
doc.Load(New StringReader(content))
Dim root As HtmlNode = doc.DocumentNode
Dim anchorTags As New List(Of String)
For Each link As HtmlNode In root.SelectNodes("//a")
cururl = link.OuterHtml
If link.Attributes("href") Is Nothing Then Continue For
If Uri.IsWellFormedUriString(link.Attributes("href").Value, UriKind.Absolute) Then
urlQueue.Enqueue(link.Attributes("href").Value)
Else
Dim myUri As New Uri(url)
urlQueue.Enqueue(myUri.Scheme & "://" & myUri.Host & link.Attributes("href").Value)
End If
Next
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error (parseHtml(" & url & "))")
End Try
End Sub
私が手にエラーがある:
タイプ 「System.NullReferenceException」 の最初のチャンス例外が オブジェクトのインスタンスに設定されていないWebcrawler.exeオブジェクト 参照で発生しました。私が解析しようとする内容に
:
Iޥ+:80X
コンテンツ」であるかどうかを確認する方法エラーを防ぐために解析する前に解析することができますか?
今のところ、エラーポップアップを表示する画像ですが、(x)htmlではないものと思われます。偉大なコミュニティOW事前に
感謝:)
ワウ。これは素晴らしいことです。私はまだそれをテストしていないが、私はあなたがちょうどこの質問に答えると思うと私は尋ねていない別の質問!私は自分のWebRequestの応答タイプとコンテンツタイプをチェックする方法が不思議に思っていました。あなたがその方向性で私を指摘したと思います。今すぐテストしよう! – PeeHaa