2008年3月20日 星期四

抓取網頁的最短程式

Q: 如何在.net中抓取網頁?

A: 要抓取網頁可以呼叫System.Net命名空間中的 WebClient 或 WebRequest 類別, 其中WebClient 較簡單, 只要幾行就搞定了。

Dim myClient As WebClient = New WebClient()
Dim response As Stream = myClient.OpenRead _("http://www.contoso.com/index.htm")
Dim Buffer(10240) As Byte
Dim Buffer_all(1024000) As Byte
Dim bytesread As Integer
Dim length As Integer
length = 10240
' 從資料流讀取,並將任何資料寫至主控台。
' *** bytesread 不等於 length
Dim sb As New StringBuilder
Dim i As Integer = 0
bytesread = response.Read(Buffer, 0, length)
Do While (bytesread > 0)
Array.Copy(Buffer, 0, Buffer_all, i, bytesread)
i = i + bytesread
bytesread = response.Read(Buffer, 0, length)
Loop
' 完成後關閉資料流。
response.Close()
MsgBox(System.Text.Encoding.UTF8.GetString(Buffer_all, 0, i))

沒有留言: