利用socket直接发送http请求然后接受服务器回应就可以了,从底层实现比较方便。 Dim serverIP As IPAddress serverIP = Dns.Resolve("www.somesites.com").AddressList(0) Dim Port As String = "80" Dim serverhost As IPEndPoint = New IPEndPoint(serverIP, Int32.Parse(Port)) Dim Socket1 As New System.Net.Sockets.Socket(Net.Sockets.AddressFamily.InterNetwork, Net.Sockets.SocketType.Stream, Net.Sockets.ProtocolType.Tcp) Socket1.Connect(serverhost) If Socket1.Connected = False Then Exit Sub End If Dim cmd As String cmd = "GET /viewbook.asp?id=5184 HTTP/1.1" + vbCrLf cmd = cmd + "Host: www.somesites.com" + vbCrLf cmd = cmd + "Accept: */*" + vbCrLf cmd = cmd + vbCrLf Socket1.Send(Encoding.ASCII.GetBytes(cmd)) Dim buffer(1024) As Byte Dim byteCount As Int16 = Socket1.Receive(buffer, buffer.Length, 0) Dim path as String = "c:\1.htm" Dim Sw As New StreamWriter(path) Sw.Write(Encoding.Default.GetString(buffer, 0, byteCount)) Do While byteCount > 0 byteCount = Socket1.Receive(buffer, buffer.Length, 0) Sw.Write(Encoding.Default.GetString(buffer, 0, byteCount)) Loop Sw.Close()修改代码里的“www.somesites.com”为你要获取的页面地址(共2处),此段代码会把页面下载并保存为c:\1.htm(可修改此路径),但不会下载页面里的图像,如果你需要的话,要自己家代码来解析图像连接并下载。另外,此代码对动态网页有效。
Dim serverIP As IPAddress
serverIP = Dns.Resolve("www.somesites.com").AddressList(0)
Dim Port As String = "80"
Dim serverhost As IPEndPoint = New IPEndPoint(serverIP, Int32.Parse(Port))
Dim Socket1 As New System.Net.Sockets.Socket(Net.Sockets.AddressFamily.InterNetwork, Net.Sockets.SocketType.Stream, Net.Sockets.ProtocolType.Tcp)
Socket1.Connect(serverhost)
If Socket1.Connected = False Then
Exit Sub
End If
Dim cmd As String
cmd = "GET /viewbook.asp?id=5184 HTTP/1.1" + vbCrLf
cmd = cmd + "Host: www.somesites.com" + vbCrLf
cmd = cmd + "Accept: */*" + vbCrLf
cmd = cmd + vbCrLf
Socket1.Send(Encoding.ASCII.GetBytes(cmd))
Dim buffer(1024) As Byte
Dim byteCount As Int16 = Socket1.Receive(buffer, buffer.Length, 0)
Dim path as String = "c:\1.htm"
Dim Sw As New StreamWriter(path)
Sw.Write(Encoding.Default.GetString(buffer, 0, byteCount))
Do While byteCount > 0
byteCount = Socket1.Receive(buffer, buffer.Length, 0)
Sw.Write(Encoding.Default.GetString(buffer, 0, byteCount))
Loop
Sw.Close()修改代码里的“www.somesites.com”为你要获取的页面地址(共2处),此段代码会把页面下载并保存为c:\1.htm(可修改此路径),但不会下载页面里的图像,如果你需要的话,要自己家代码来解析图像连接并下载。另外,此代码对动态网页有效。
cmd = "GET /Expert/topic/3533/3533902.xml?temp=.4753687 HTTP/1.1" + vbCrLf
cmd = cmd + "Host: community.csdn.net" + vbCrLf