老妈让我帮他抢个红米,开了n个窗口就是刷不出来,那些黄牛到底是怎么抢的,淘宝上看到有卖抢红米的软件就是一键打开n个窗口然后进行自动登录,抢购,这样是不是就厉害些,我就想照着做一个出来玩,之前尝试了一次用js做,结果就是解决不了跨域访问的问题,这时候就想有没有个可以自己随意操作的浏览器,浏览器会给很多api接口这样就是不是好解决很多,然后就发现vb里面有个webbrowser浏览器控件可以解决这个问题,于是说干就干了。
首先想想需求是,给你一个账号密码能够自动登录。看看小米的网站源码发现是登录的控件是在一个iframe里面,怎么获取这么iframe里面的document代码是一个问题,代码如下
之前还要导入两个库文件,其中一个没有还需要下载
Private Function getFrames(ByVal WB As WebBrowser) As Object
Dim pContainer As olelib.IOleContainer
Dim pEnumerator As olelib.IEnumUnknown
Dim pUnk As olelib.IUnknown
Dim pBrowser As SHDocVwCtl.WebBrowser_V1
Set pContainer = WB.Object.Document
If pContainer.EnumObjects(OLECONTF_EMBEDDINGS, pEnumerator) = 0 Then
Set pContainer = Nothing
Do While pEnumerator.Next(1, pUnk) = 0
Set pBrowser = pUnk
If Err.Number = 0 Then
'Print "Frame: " & pBrowser.LocationURL
' 这里用来设置你想获得的frame 因为只有一个frame就不管了
If pBrowser.LocationURL <> "" Then '可以在这里加条件判断得到指定的frame,基本可以根据url或者innerHTML中的某个关键字符
Set getFrames = pBrowser
Exit Function
End If
End If
Loop
Set pEnumerator = Nothing
End If
End Function
解决完跨域访问后自动登录什么的就能完成了,接着就是如何打开多个窗口并进行控制,这里声明了一个动态数组来管理新建的窗口,并对每一个窗口进行一些自动化的操作
这些功能比较繁琐一点但是技术上没什么难点
这是我基本设想的些功能,基本都实现了,但是小米的反黄牛肯定还在不断进行中,这是个博弈的过程,就像这次加入的验证码就又坑了我一次,现在还有好多小毛病没有达到我想要的目标,任何方面想要做好都不是一天两天的事我估计不会再改进什么,看看下次抢时能不能用上吧
本文发布于:2024-01-27 20:51:59,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17063599192567.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |