1

所以基本上我想接收网页的数据,但只接收特定的类名元素或标签名值。

<div>
    <div class="abc" style="margin-top:-187px;"><strong>1111</strong></div>
    <div class="abc" style="margin-top:-150px;"><strong>2222</strong></div>
    <div class="abc" style="margin-top:-114px;"><strong>3333</strong></div>
    <div class="abc" style="margin-top:-77px;"><strong>4444</strong></div>
    <div class="abc" style="margin-top:-42px;"><strong>5555</strong></div>
</div>

从上面我想要标签名称 strong 的所有值或 abc 类的元素。所以我的输出应该是这样的

1111
2222
3333
4444
5555

我创建了以下

Dim inStream As StreamReader
Dim request As WebRequest = WebRequest.Create("url here")
Dim response As WebResponse = request.GetResponse
inStream = New StreamReader(response.GetResponseStream())
Dim str As String = inStream.ReadToEnd()
Textbox1.Text = str

但正如您所看到的,它获取整个页面,但我只想要特定的标签或类名元素。

任何帮助将不胜感激。

4

1 回答 1

0

您可以使用Html Agility Pack来解析 HTML。

示例:( 应该足以让你开始)

Dim html = <html>
                <div>
                    <div class="abc" style="margin-top:-187px;"><strong>1111</strong></div>
                    <div class="abc" style="margin-top:-150px;"><strong>2222</strong></div>
                    <div class="abc" style="margin-top:-114px;"><strong>3333</strong></div>
                    <div class="abc" style="margin-top:-77px;"><strong>4444</strong></div>
                    <div class="abc" style="margin-top:-42px;"><strong>5555</strong></div>
                </div>
            </html>
            
Dim htmlDoc = new HtmlAgilityPack.HtmlDocument()

htmlDoc.LoadHtml(html.ToString())

For Each node In htmlDoc.DocumentNode.SelectNodes("//div[@class='abc']//strong")
    Console.WriteLine(node.InnerText.ToString())
Next

结果

1111
2222
3333
4444
5555

于 2013-10-01T15:03:01.890 回答