我已经从网上保存了一些HTML页面...现在我想解析一些特定的数据。我的意思是我想使用VB / C#代码从HTMl页面中检索一些特定的部分。我该怎么做呢?
帮我介绍一些代码示例VB / C#/ ASP.NET。
更新
我正在使用此代码来阅读html文件
Private Sub cmdSubmit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSubmit.Click
Dim oRequest As System.Net.WebRequest
Dim oResponse As System.Net.WebResponse
Dim oReader As System.IO.StreamReader
Dim sResponse As String
Try
oRequest = System.Net.WebRequest.Create(txtURI.Text)
oResponse = oRequest.GetResponse
oReader = New System.IO.StreamReader(oResponse.GetResponseStream)
sResponse = oReader.ReadToEnd
Catch : sResponse = "Could not load page"
End Try
txtHTML.Text = sResponse
End Sub
我现在要做的就是将规格保存到DATABASE。 1.如何选择规格并在ListBox中显示? 2.如何将其保存到DATABASE?
答案 0 :(得分:0)
您可以查看Html Agility Pack。它是一个非常好的库,用于解析HTML流并提取您可能需要的任何信息。这是一个example。
更新:
根据评论部分的要求,这里有一个示例,说明如何从以下地址http://www.sony.co.in/product/vpcea4bgn获取笔记本电脑的规格:
Using client = New WebClient()
client.Headers(HttpRequestHeader.UserAgent) = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0.2) Gecko/20100101 Firefox/6.0.2"
Dim doc = New HtmlDocument()
doc.LoadHtml(client.DownloadString("http://www.sony.co.in/product/vpcea4bgn"))
Dim specs = doc.DocumentNode.SelectNodes("//ul[@class='featuresList BodyText']/li/text()")
For Each spec As HtmlNode In specs
Dim value = spec.InnerText.Trim()
If Not String.IsNullOrEmpty(value) Then
' TODO: Save the specification to your database or something
Console.WriteLine(value)
End If
Next
End Using
请注意,屏幕抓取是脆弱的,当索尼更改其HTML结构时,您的应用程序将会严重失败。