RMB30求大神帮忙抓取网页数据
这个网址我只能一次抓取到50期数据,我想一次抓取到200期数据,但不知道如何弄,总是定位不到url,请大神不吝赐教,事成之后支付宝直接转账30!http://chart.ydniu.com/trend/k3bj/
网页右上角有期数选择,但我不知道该如何弄 浏览器是IE吗? 公司打不开,不能及时帮忙了 把这段的网页源码贴一下 本帖最后由 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)
回复 5# nmgwddj
请问firefox中如何操作table对象? 回复 6# ysping
IE、Firefox、Chrome,都遵循 W3C 大标准,使用常规 JavaScript 方法均可以操作。
参考 :
http://www.runoob.com/htmldom/htmldom-tutorial.html
http://www.runoob.com/js/js-tutorial.html 回复 7# nmgwddj
没学过js{:face (229):} 能举个例子吗? 回复 9# ysping
http://www.multisilicon.com/blog/a34212751.html
这个属于 AU3 的扩充知识了,下一套 JavaScript 的视频,花一周的时间好好学习一下,学完你会发现惊喜很多,一定不会白费这些学些的时间。 回复 10# nmgwddj
好的,找时间学习一下JS,有没有推荐的比较好的视频教程?
有AU3中使用JS的例子吗? 回复 7# nmgwddj
有用过IE11改变cookies路径 多帐号登入么? 回复 12# 1361739590
没研究过。 回复 11# ysping
链接: http://pan.baidu.com/s/1c2sl5dQ 密码: 3v3s
看完 20150807 之前(包含)的所有视频你就基本上对 DOM 控制游刃有余了,基本需求都可以实现。 回复 14# nmgwddj
谢谢了!
页:
[1]
2