2019-07-22 15:13:19
浏览数 (1)
- VB6/VB.NET 直接调用即可
- EXCEL VBA 先把函数粘贴到模块中,然后在单元格单用即可
代码语言:javascript
复制Public Function FY_Data(ByVal StrData As String) As String
''***********由VB小源码编写*********************************
''**********更多精彩请继续关注,微信公众号:VB小源码**********
''**********************************************************
On Error GoTo ERR: '出错跳转至ERR
Dim XMLHTTP As Object '定义http对象
Set XMLHTTP = CreateObject("Microsoft.XMLHTTP") '创建xmlhttp对象
XMLHTTP.open "POST", "http://fy.iciba.com/ajax.php?a=fy", True 'post地址
XMLHTTP.setrequestheader "Content-Length", Len("&f=auto&t=auto&w=" & StrData) '数据长度
XMLHTTP.setrequestheader "Content-Type", "application/x-www-form-urlencoded" '数据类型
XMLHTTP.setrequestheader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0" '模拟浏览器发送
XMLHTTP.send ("&f=auto&t=auto&w=" & StrData) '传送数据给服务器
Do Until XMLHTTP.ReadyState = 4 '判断网页状态,当等于4时,数据返回成功
DoEvents
Loop
''****************************************************
'以下部分为数据解析
Dim JS As Object '定义js对象
Set JS = CreateObject("MSScriptControl.ScriptControl") '创建js对象
JS.allowui = True '使UI可见
JS.Language = "JavaScript" '语言类型这里采用js
JS.AddCode ("var js=" & XMLHTTP.ResponseText) '把网页返回的数据传入js对象
If InStr(XMLHTTP.ResponseText, Chr(34) & "out" & Chr(34)) > 0 Then '当有"out" 时采用文章输出,否者输出单词结果
FY_Data = JS.eval("js.content.out")
Else
FY_Data = JS.eval("js.content.word_mean")
End If
''*****************************************
Set JS = Nothing '释放对象
Set XMLHTTP = Nothing '释放对象
Exit Function '退出方法
ERR:
'返回错误值
FY_Data = "ERROR"
End Function