所以基本上我想要接收网页的数据,但只接收特定的类名元素或标签名称值。
<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>
从上面我想要标签名称的所有值或者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
但是你可以看到它是整个页面的获取,但我只想要特定的标签或类名元素。
任何帮助将不胜感激。
答案 0 :(得分: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