vba 网抓常用方法:1、xmlhttp/winhttp 法:用 xmlhttp/winhttp 模拟向服务器发送请求,接收服务器返回的数据
优点:效率高,基本无兼容性问题
缺点:需要借助如 fiddler 的工具来模拟 http 请求
2、IE/webbrowser 法:创建 IE 控件或 webbrowser 控件,结合 htmlfile 对象的方法和属性,模拟浏览器操作,获取浏览器页面的数据
优点:这个方法可以模拟大部分的浏览器操作
所见即所得,浏览器能看到的数据就能用代码获取
缺点:各种弹窗相当烦人,兼容性也确实是个很伤脑筋的问题
上传文件在 IE 里根本无法实现
(有实现方法
请一定告诉我)3、QueryTables 法:因为它是 excel 自带,所以勉强也算是一种方法
其实此法和 xmlhttp 类似,也是 GET或 POST 方式发送请求,然后得到服务器的 response 返回到单元格内
优点:excel 自带,可以通过录制宏得到代码,处理 table 很方便
代码简短,适合快速获取一些存在于源代码的 table 里的数据
缺点:无法模拟 referer 等发包头(如果你有在 QT 中模拟 referer 的方法,请一定告诉我)网抓主题代码:SubMain()DimstrTextAsStringWithCreateObject("MSXML2
XMLHTTP")'CreateObject("WinHttp
WinHttpRequest
1")'
Open"POST","",False
setRequestHeader"Content-Type","application/x-www-form-urlencoded"
setRequestHeader"Referer",""
SendstrText 二
responsetextDebu