VBA抓取网页数据,需要认证:
要获取的网站只有个php范例,PHP语言范例中有这五句:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://bter.com/api/1/private/getfunds');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); //$post_data是一个随机数字串如:'nonce=1460741026120200'
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
$res = curl_exec($ch);
//说明:$headers形如:{Array ( [0] => KEY: 公钥 [1] => SIGN: Sha512哈希 [可选参数名] => 参数值 ) }
//其中:Sha512哈希=hash_hmac('sha512', $post_data随机数明码, $secret密钥),其实就是一个512位的哈希值,用以验证
//就是主要传送这两个数据就可以得到JSON格式的数据保存在$res中,参数提交方式POST。
转到VBA中:(我在网上查到这段代码,不知道能不能用,或者其他代码也可)
Sub xxx()
Dim http
Set http = CreateObject("Microsoft.XMLHTTP")
http.Open "POST", "http://网址/PHP文件名.PHP", False
http.send "T1=XXX&T2=XXXXX&T3=XXXXXX"
If http.Status = 200 Then
[a1] = http.responseText
MsgBox "成功。"
Else
MsgBox "调用失败,错误代码:" & http.Status
End If
End Sub
以我的理解:VBA中"T1=XXX&T2=XXXXX&T3=XXXXXX",就是指PHP中的$headers,对吗?但那个$post_data数据应该放在VBA代码的什么位置?
php中传送的两个数据:$post_data、$headers,在VBA中怎么传送?