
vb winsock 获取网页数据!
如图所题,winsock要做持每一分钟就获取一次数据!我试用过xmlhttp很占资源,速度不怎么样,而且还占带宽!webbrowser我也试过,效果也不怎么好。所以一定要...
如图所题,winsock要做持每一分钟就获取一次数据!
我试用过xmlhttp 很占资源,速度不怎么样,而且还占带宽! webbrowser我也试过,效果也不怎么好。所以一定要用winsock! 看了一楼和三楼的回答,我才知道什么是人渣。看了四楼的回答我才知道什么是不懂装懂。从网络的角度。使用winsock 可以用Post数据包 发送到http协议获取对应的信息。 和网页获取是两回事,拜托你们这些所谓的不难又说不出个所以然的高才生,回家去睡觉。再说 winsock去获取指定数据根本就不难。你们这些VB高才生自己去CSDN上看看。再说了,贴吧里不也有个高手cbm666 麽,在他的回答下我得到很大的指导。已经会获取了。只不过分不能白给。连winsock的使用都没人随便列个方式出来。 展开
我试用过xmlhttp 很占资源,速度不怎么样,而且还占带宽! webbrowser我也试过,效果也不怎么好。所以一定要用winsock! 看了一楼和三楼的回答,我才知道什么是人渣。看了四楼的回答我才知道什么是不懂装懂。从网络的角度。使用winsock 可以用Post数据包 发送到http协议获取对应的信息。 和网页获取是两回事,拜托你们这些所谓的不难又说不出个所以然的高才生,回家去睡觉。再说 winsock去获取指定数据根本就不难。你们这些VB高才生自己去CSDN上看看。再说了,贴吧里不也有个高手cbm666 麽,在他的回答下我得到很大的指导。已经会获取了。只不过分不能白给。连winsock的使用都没人随便列个方式出来。 展开
展开全部
你可以把xmlhttp设成异步方式运行,然后在其事件中获得返回值,这样你就会觉得流畅许多。
另外我要提醒你一句,不管你用什么控件、什么方式,只要是用http协议获取的网页,速度就不可能快到那里去,就和你用浏览器打开同样网页的速度差不多,这中间制约的因素太多了,你就是用一台运行速度比我的电脑快100倍的超级电脑,浏览“www.baidu.com”的速度也不可能比我快100倍。http协议决定了你只能在下载完整个网页的内容(包括文字和图片)后才能从中截取你需要的内容,而不能够只下载你需要的部分。所以,即使你用winsock,速度也不可能快的,而且大大增加了编程的难度。
顺便说一句,你还漏了一种方法,那就是用inet控件,只需一行代码就能获得网页源码,应该说这才是最简便的方法。
你这200分我也不想赚了,因为winsock的用法太罗嗦了,我懒得说了。
另外我要提醒你一句,不管你用什么控件、什么方式,只要是用http协议获取的网页,速度就不可能快到那里去,就和你用浏览器打开同样网页的速度差不多,这中间制约的因素太多了,你就是用一台运行速度比我的电脑快100倍的超级电脑,浏览“www.baidu.com”的速度也不可能比我快100倍。http协议决定了你只能在下载完整个网页的内容(包括文字和图片)后才能从中截取你需要的内容,而不能够只下载你需要的部分。所以,即使你用winsock,速度也不可能快的,而且大大增加了编程的难度。
顺便说一句,你还漏了一种方法,那就是用inet控件,只需一行代码就能获得网页源码,应该说这才是最简便的方法。
你这200分我也不想赚了,因为winsock的用法太罗嗦了,我懒得说了。
展开全部
要用WINSOCK很简单,主要是HTTP协议实现而已
连接方式
sock.RemoteHost = "www.baidu.com"
sock.RemotePort = 80
sock.Connect
while (sock.state <> sckConnected)
doevents
wend
sock.SendData "GET /index.htm HTTP/1.1" & vbNewLine & vbNewLine
然后在DataArrival事件里读取内容,例如
Private Sub sock_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim strData As String
sock.GetData strData, vbString
Msgbox sock
End Sub
如果获取的就是纯粹的HTML,那么好分析。
但你给的网页还有JS。。。
而且你要的数据也是由JS输出的,HTML源码中无法直接获取数据。
= =
烦啊。
250分我都不想做。
连接方式
sock.RemoteHost = "www.baidu.com"
sock.RemotePort = 80
sock.Connect
while (sock.state <> sckConnected)
doevents
wend
sock.SendData "GET /index.htm HTTP/1.1" & vbNewLine & vbNewLine
然后在DataArrival事件里读取内容,例如
Private Sub sock_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim strData As String
sock.GetData strData, vbString
Msgbox sock
End Sub
如果获取的就是纯粹的HTML,那么好分析。
但你给的网页还有JS。。。
而且你要的数据也是由JS输出的,HTML源码中无法直接获取数据。
= =
烦啊。
250分我都不想做。
本回答被提问者采纳

你对这个回答的评价是?
展开全部
建议为你的网页建立一个后台程序,VB winsock很容易实现的。把数据放到数据库在共给网页去调用,速度就会快的多。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询