本文主要是介绍大学就是该做做好玩的事,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
老妈让我帮他抢个红米,开了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
解决完跨域访问后自动登录什么的就能完成了,接着就是如何打开多个窗口并进行控制,这里声明了一个动态数组来管理新建的窗口,并对每一个窗口进行一些自动化的操作
这些功能比较繁琐一点但是技术上没什么难点
这是我基本设想的些功能,基本都实现了,但是小米的反黄牛肯定还在不断进行中,这是个博弈的过程,就像这次加入的验证码就又坑了我一次,现在还有好多小毛病没有达到我想要的目标,任何方面想要做好都不是一天两天的事我估计不会再改进什么,看看下次抢时能不能用上吧
这篇关于大学就是该做做好玩的事的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!