本帖最后由 nmgwddj 于 2016-8-16 10:19 编辑
回复 1# 黑色de郁金香
这是一个时时获取数据的页面,点击 200期 按钮后会发送一个 POST 请求从后台拿数据到前台展示,有两种方法。
一种发 POST 请求,直接取结果,比较麻烦(对我来说)。
另一种是模拟点击 200期 按钮,再从页面上取数据,相对简单(参考下面代码)。
_IENavigate($oIE, "http://chart.ydniu.com/trend/k3bj/", 0)
Sleep(2000)
; 获取 id 为 filters 的 dom
Local $domParent = _IEGetObjById($oIE, 'filters')
; 得到该元素下面的所有子元素
Local $childrenNodes = $domParent.childNodes
; 遍历子元素判断哪个是 200
For $child In $childrenNodes
If $child.getAttribute('value') == 200 Then
; 模拟点击 200 期按钮
$child.click()
EndIf
Next
; 等2秒
Sleep(2000)
; 按你原来获取 50 的方法再获取就可以了。
直接 POST 请求数据
$sPostData = 'method=GetTbodyHtml&type=fbzs&index=2'
$oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
$oHTTP.open('POST', 'http://chart.ydniu.com/Trend/k3bj.aspx?', False)
$oHTTP.setRequestHeader('Content-Type','application/x-www-form-urlencoded')
$oHTTP.Send($sPostData)
$Respond = BinaryToString($oHTTP.ResponseBody, 1)
FileWriteLine('result.txt', $Respond)
|