马上结帐:如何使用winsock 获取网页中指定内容?

hkchoose 2010-01-19 05:40:58
在网上看到很多类似的代码:
 
Private Sub Form_Load()
Winsock1.RemoteHost = "www.xxxx.com"
Winsock1.RemotePort = 80
Winsock1.Connect
End Sub

Private Sub Winsock1_Connect()
Dim Cmd As String
Dim Url As String
Url = "http://www.xxxx.com/Base.aspx"
Cmd = "GET " + Url + " HTTP/1.1" & vbCrLf & vbCrLf
Winsock1.SendData Cmd
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)

Dim Text

Winsock1.GetData Text, vbString
Text1.Text = Text1.Text & Text

End Sub

可效果都不好,例如http://ent.people.com.cn/GB/42075/81372/10797925.html 的文章
应该如何用winsock实现?
还有,我在另一个网页上用winsockExpert抓包中有以下内容:
HTTP/1.1 200 OK
Date: Tue, 19 Jan 2010 07:51:51 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
Cache-Control: private
Content-Type: text/plain; charset=utf-8
Content-Length: 1260

GetTodayBonusBack(["001-456","002-567","003-472","004-874","005-781"]);

应该怎么通过winsock来获取 这个 数据包中的GetTodayBonusBack 中的内容

简单地说,就是如何通过winsock获取网页中的指定内容。 希望给出示例!~
...全文
425 10 打赏 收藏 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
hkchoose 2010-01-21
  • 打赏
  • 举报
回复
最终这个问题我是在 百度贴吧看到cbm666的winsock获取源代码中得到思路,所以在此感谢。liguicd 的回答我都会,因为我是我要学winsock。
  • 打赏
  • 举报
回复
'二进制转UTF8
Private Declare Function MultiByteToWideChar Lib "kernel32" (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpMultiByteStr As Long, ByVal cchMultiByte As Long, ByVal lpWideCharStr As Long, ByVal cchWideChar As Long) As Long
Private Declare Function GetTickCount Lib "kernel32" () As Long



Public Function UTF8_Decode(bUTF8() As Byte) As String '二进制解析为UTF8
Dim lRet As Long
Dim lLen As Long
Dim lBufferSize As Long
Dim sBuffer As String
Dim bBuffer() As Byte
lLen = UBound(bUTF8) + 1
If lLen = 0 Then Exit Function
lBufferSize = lLen * 2
sBuffer = String$(lBufferSize, Chr(0))
lRet = MultiByteToWideChar(65001, 0, VarPtr(bUTF8(0)), lLen, StrPtr(sBuffer), lBufferSize)
If lRet <> 0 Then
sBuffer = Mid(sBuffer, 1, lRet)
End If
UTF8_Decode = sBuffer
End Function
这个是抄了其他人的一个函数,直接把二进制转为utf8编码。
  • 打赏
  • 举报
回复
Private Sub WinsockTcpQQ_DataArrival(ByVal bytesTotal As Long)
Dim myfile() As Byte
WinsockTcpQQ.GetData myfile, vbArray + vbByte, bytesTotal
HtmlText = HtmlText & UTF8_Decode(myfile)
End Sub
注意,htmltext是全局变量。
  • 打赏
  • 举报
回复
WinsockTcpQQ.SendData "GET /weather/101250102.shtml HTTP/1.1" & vbCrLf & _
"Accept-Language: GB2312" & vbCrLf & _
"Host: www.weather.com.cn" & vbCrLf & _
"Connection: Keep-Alive" & vbCrLf & _
"Cookie: vjuids=17f107e08.12646c122eb.0.bf0f1d0ddcaae; vjlast=1263907447." & vbCrLf & _
"1263918984.13; BIGipServerwww_pool=45679677.20480.0000" & vbCrLf & vbCrLf

这是从中国气象网上获取宁乡天气的get包。期间去掉了gzip压缩,直接可收回数据。但是需要用二进制接收并且需要转码,否则汉字会乱码。

希望对你有帮助。
cbm6666 2010-01-19
  • 打赏
  • 举报
回复
使用Winsock是可以下载源文件 但你要的
GetTodayBonusBack(["001-456","002-567","003-472","004-874","005-781"]);

被转链接到其它网址或..........

  从1月4日开始在内地上映,《阿凡达》一票难求的火爆场面持续了很长一段时间。<br><br>  昨日,一则“《阿凡达》将紧急停映”的消息在网上疯传,还有网友将之与国产大片《孔子》即将上映联系在一起。<br><br>  就此,本报记者向有关方面寻求求证。事实是,包括长沙在内的内地不少影院已经接到“内部通知”:从《孔子》上映时间(1月22日)开始,《阿凡达》2D(普通版)将统一下档,只保留该片的普通3D版、IMAX版。<br><br>  <strong>2D版下档</strong><br><br>  <strong>3D版、IMAX版会继续放映</strong><br><br>  爆料 昨日上午,一则“《阿凡达》将紧急停映”的消息在网上疯传,网友纷纷转帖江苏无锡大世界影城出示的“紧急通知”,该通知称:“接中影公司及院线通知,影片《阿凡达》(所有版本)将于1月23日起全国紧急停映!敬请谅解!!已购买23日、24日票的观众,请于22日前至影城售票处办理退票!”消息一出,有网友将之与国产大片《孔子》即将上映联系在一起。<br><br>  <strong>求证</strong><br><br>  <strong>影城:片方要求2D版停映</strong><br><br>  从长沙的情况来看,除万达国际影城外,包括中影今典、王府井在内的其他影城尚未接到通知。长沙万达国际影城副总经理周毅表示,通知是17日晚由影院内部系统传达的,下达通知的不是影片在内地的发行方,而是片方。<br><br>  随后,记者尝试联系发行方中影公司新闻发言人翁立,但其手机一直处于关机状态。与中影共同发行《阿凡达》的华夏电影发行有限公司负责人萨先生表示:“据我所知是没有正式通知,至少华夏这边没有下达这种通知,中影那边怎样不太清楚,但也不至于要为了《孔子》而下掉《阿凡达》,不存在‘让道’一说,尤其是在今年本来就已经很挤的贺岁档期间。”<br><br>  <strong>说法:既是“让道”也是“还人情”</strong><br><br>  尽管通知的出台比较蹊跷,但《阿凡达》2D版下档一事并非虚构,全国各地的主要影城都已开始做调整工作。由于《阿凡达》2D版下档的日期正好与《孔子》的上映期重合,一位圈内知情人士透露,《阿凡达》2D版下档的目的非常明显,就是给《孔子》让道,只不过官方不方便出面,只好由《阿凡达》片方来操作,“之前《阿凡达》为《十月围城》的票房增值推迟了内地上映日期,然后《孔子》为《阿凡达》推迟上映,这样一来,说是‘还人情’也可以,说是‘让道’也有道理。总之,不论《孔子》之前上的是什么影片,它来了就得‘让道’。”对此,《孔子》片方明确表示不对此事做任何回应。<br><br>  <strong>安排</strong><br><br>  <strong>《阿凡达》:想看还得提前买票</strong><br><br>  因为“《阿凡达》将停映”的传闻,昨晚长沙几大影院再次出现购票高峰。据了解,《阿凡达》的普通3D版、IMAX版将继续放映至今年3月初,长沙影迷不用担心看不到《阿凡达》。“普通3D版影片的档期一直就比2D版的长,因为国内的3D银幕较少,片源也少,且近期也没有新的3D片上映,加上《阿凡达》现在的票房很高,即便2D版的票房减弱也不会造成太大的影响。”中影今典放电影院总经理杨学非说。也就是说,即使《孔子》来了,长沙三大影院至少8个影厅还会继续放映《阿凡达》(中影今典3个3D厅、王府井2个3D厅、万达2个3D厅1个IMAX厅)。<br><br>  这也意味着,想看《阿凡达》还得提前买票,尤其是IMAX版。长
liguicd 2010-01-19
  • 打赏
  • 举报
回复

1.WebBrowser控件

dim s as string
s=WebBrowser.Document.body.innerHTML或者innerText


2.Inet控件

dim s as string
s=Inet.OpenURL("http://www.86lg.com")


3.XMLHttp对象

Private Sub Command1_Click()

Dim Http As Object, URL As String, WebCode As String
Set Http = CreateObject("Microsoft.XMLHTTP") '调用XMLHTTP对象
URL = "http://www.86lg.com" '赋予变量URL值
Http.open "get", URL, False '定义打开URL方式
Http.send '发送数据
WebCode = TRAN(Http.responsebody) '变量zhi等于网页内容

End Sub

Function TRAN(vIn) As String

Dim strReturn As String, ThisCharCode As String, NextCharCode As String
Dim i As Long
strReturn = ""
For i = 1 To LenB(vIn)
ThisCharCode = AscB(MidB(vIn, i, 1))
If ThisCharCode < &H80 Then
strReturn = strReturn & Chr(ThisCharCode)
Else
NextCharCode = AscB(MidB(vIn, i + 1, 1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
i = i + 1
End If
Next
TRAN = strReturn

End Function


wyj518 2010-01-19
  • 打赏
  • 举报
回复
高手啊,下载下来后,是不是需要用正则表达式啊 难吗
嗷嗷叫的老马 2010-01-19
  • 打赏
  • 举报
回复
为什么不使用WebBrowser控件?

直接从目标网页的框架里取得相应内容即可.
  • 打赏
  • 举报
回复
winsock?
下载代码方式:https://pan.quark.cn/s/a4b39357ea24 【创新7.1声卡KX驱动+连线图】是一款专门为创新公司所制造的7.1音频声卡量身定制的驱动方案,其核心宗旨在于为用户带来超越官方原生驱动程序的卓越音质感受。KX驱动属于一种由爱好者群体自主开发的非官方驱动软件,该驱动在Creative公司原版驱动程序的基础上进行了深度改良与功能扩充,旨在提供更为多样化的声音调节参数以及更为出色的运行表现。 我们现在来详细认识一下7.1声道系统。7.1声道代表的是一种沉浸式音频技术规范,该规范包含七个全频域音箱单元(具体包括前置左声道、前置右声道、中央声道、环绕左声道、环绕右声道、后置左声道以及后置右声道)搭配一个低频震动单元,其设计目的是为用户构建更加立体且逼真的听觉场景,尤其适合应用于电子游戏、电影观影以及音乐欣赏等场景。 KX驱动的独到之处在于其赋予了用户更为广阔的个性化定制权限,使用者能够依据自身的听音偏好对音频参数进行细致调节,例如均衡器参数、混响效果、压缩比设定、噪声抑制门限等,从而使得最终的音效呈现出更为精致且个性化的特质。不仅如此,KX驱动还兼容VST插件机制,该机制是虚拟乐器与音频效果处理软件的通用标准,用户通过安装各式各样的VST插件,能够进一步增强声卡的实用功能,例如模拟多种乐器音色或达成复杂的声音效果制作。 在获取并部署KX驱动程序之后,对"连线图"的正确导入工作具有决定性意义。连线图又被称为音频路由配置图或信号流向示意图,它是一份用于指导用户如何正确配置并连接各个音频输出通道的视觉化手册。对于非专业背景的使用者而言,准确设定这些音频通道可能会面临一定程度的困难,因此连线图的提供极大地简化了这一过程。依照连线图进行配置操...
内容概要:本文介绍了基于粒子群优化算法(PSO)优化长短期记忆网络(LSTM)的电力负荷预测方法,并通过Python代码实现。该方法结合PSO强大的全局搜索能力,对LSTM模型的关键超参数进行智能寻优,有效提升了模型在处理非线性、强时序性电力负荷数据时的预测精度与泛化性能。文中系统阐述了从数据预处理、模型构建、PSO优化流程到预测结果分析的完整技术链条,重点展示了如何通过优化算法克服传统LSTM参数依赖经验设定的局限性,为复杂时间序列预测提供了高效解决方案。; 适合人群:具备一定Python编程能力和机器学习基础知识,从事电力系统分析、能源管理、负荷预测等相关领域的研究人员、工程师以及高校研究生。; 使用场景及目标:①应用于电力系统的短期与中期负荷预测,提升电网调度的准确性与经济性;②作为智能优化算法与深度学习融合的典型范例,用于科研项目开发与教学实践;③目标在于通过超参数自动优化,显著降低预测模型的均方根误差(RMSE)和平均绝对百分比误差(MAPE),增强模型的鲁棒性与实用性。; 阅读建议:建议读者结合所提供的完整Python代码,深入理解PSO优化LSTM的具体实现过程,重点关注适应度函数的设计、参数编码方式及优化迭代机制,并鼓励在自有数据集上进行复现实验与调参优化,以深刻掌握模型性能提升的技术路径。
内容概要:本文系统研究了输入扩张技术对归一化最小均方(NLMS)算法在稳态条件下过剩均方误差(EMSE)的影响,并提供了完整的Matlab代码实现。通过严谨的理论推导与详实的仿真实验,深入探讨了输入信号经线性扩张处理后对NLMS算法收敛性能和稳态误差的优化作用。研究不仅阐明了不同扩张方式与参数配置对EMSE的具体改善效果,还定量分析了其对算法收敛速度与稳定性的影响,旨在为自适应滤波系统的性能优化与工程设计提供坚实的理论依据和有效的技术手段。; 适合人群:具备信号处理、自适应滤波等专业知识的研究生、科研人员及工程技术人员,要求熟练掌握Matlab编程语言,并拥有基本的算法仿真实现经验。; 使用场景及目标:①深入探究NLMS算法在不同输入信号条件下的稳态性能表现规律;②通过Matlab仿真平台,验证输入扩张技术在降低EMSE方面的有效性与实用性;③为自适应滤波器的设计选型、参数整定与性能优化提供直接的技术支持和可靠的实验参考。; 阅读建议:建议读者紧密结合所提供的Matlab代码,深入理解算法的实现细节,重点关注输入扩张模块的设计原理与EMSE的计算流程。同时,鼓励通过调整仿真参数(如扩张因子、步长、输入信号类型等),观察其对算法性能的动态影响,从而加深对理论分析结果的理解,并提升解决实际工程问题的能力。

1,502

社区成员

发帖
与我相关
我的任务
社区描述
VB 网络编程
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧