0

誰かアドバイスをくれませんか?現在、使用しているリストボックスがあります。リストボックスには、任意の Web サイトからの画像のリストがあります。このメソッドを介してウェブサイトから取得されます

Private Sub WebBrowser1_DocumentCompleted(ByVal sender As Object, ByVal e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
    Dim PageElements As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("img")
    For Each CurElement As HtmlElement In PageElements
        imagestxt.Items.Add(imagestxt.Text & CurElement.GetAttribute("src") & Environment.NewLine)
    Next
    Timer1.Enabled = True
End Sub

次に、画像制御メソッドを使用して画像を取得し、表示します。

pic1.Image = New Bitmap(New MemoryStream(New WebClient().DownloadData(imagestxtimagestxt.SelectedItem.ToString))).SelectedItem.ToString)))

このメソッドは、HTML から画像とタイトルを取得します。

Private Function StrHTML12() As Boolean
    Dim htmlDocument As HtmlDocument = WebBrowser1.Document
    ListBox1.Items.Clear()
    For Each element As HtmlElement In htmlDocument.All
        ListBox1.Items.Add(element.TagName)
        If element.TagName.ToUpper = "IMG" Then
            imgtags.Items.Add(element.OuterHtml.ToString)
        End If
        If element.TagName.ToUpper = "TITLE" Then
            titletags.Items.Add(element.OuterHtml.ToString)
            Timer1.Enabled = False
        End If
    Next
End Function

alt=""これは、ページに空白または空白がいくつあるかをカウントするカウント方法img alt=''です。

基本的に私がやろうとしていることは次のとおりです。

画像をチェックできるプログラムを用意してください。alt=''またはimg alt=''、ウェブサイトで開発者が alt タグに何も入れていない場合は、画像を画像ボックスに表示し、その横または下に alt タグを配置します。それか何か。しかし、私は方法がわかりません。

counter = InStr(counter + 1, strHTML, "<img alt=''")
counter = InStr(counter + 1, strHTML, "alt=''")
counter = InStr(counter + 1, strHTML, "alt=""")

上記は本当に遅くて面倒です。それを行うより良い方法はありますか?

4

1 に答える 1

0

VB がインストールされていないため、コードをテストできませんでした。また、datagridview コンポーネントに慣れていないため、コードを統合しようとはしていません。

以下のコードは、ページの を取得し、持っていない (または空である)titleすべてのタグをループします。imgalt-text

HtmlElement.GetAttribute(sAttr)属性の値または空の文字列を返します。

Private Sub WebBrowser1_DocumentCompleted(ByVal sender As Object, ByVal e As     WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
    Dim Title As String
    Dim ImSrc As String
    Dim PageElements As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("img")
    // This line might need to be adjusted, see below
    Title = PageElements.GetElementsByTagName("title")(0).InnerText

    For Each CurElement As HtmlElement In PageElements
        If CurElement.GetAttribute("alt") = "" Then
             // CurElement does not have alt-text
             ImSrc = CurElement.GetAttribute("src") // This Image has no Alt Text
        Else
             // CurElement has alt-text
        End If
    Next
    Timer1.Enabled = True
End Sub

コレクションにアクセスする方法がわからないため、タイトルを取得する行を変更する必要があるかもしれません。関数から返される最初の (できれば唯一の) 要素が必要ですGetElementsByTagName

于 2013-02-26T20:50:20.263 に答える