dhwc 发表于 2013-12-27 19:54:41

帮朋友投票 ie的_IEGetObjById函数怎么用?

菜鸟一枚 帮朋友投票 代码如下:
#include <IE.au3>
$oIE=_IECreate("http://cdsp.com.cn/cdsppoll/bestof2013.htm")
While 1
;-------------查看源代码得到ID---------------------
$oID=_IEGetObjById ($oIE,"moodinfo360")
_IEAction($oID,"Click")
      sleep(1000)
      Send ("{enter}")
sleep(1000)
WEnd
exit

但是这样没用啊?恳请达人赐教,谢谢

joyran 发表于 2013-12-27 20:06:27

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ie.au3>

;$oIE = ObjCreate("Shell.Explorer.2")
$oIE = _IECreateEmbedded ()
GUICreate("webtest", 640, 580)
GUICtrlCreateObj($oIE, 0, 0, 640, 480)
GUISetState() ;Show GUI
;$oIE.navigate("http://www.baidu.com")

;_IENavigate ($oIE,"http://www.baidu.com/",0)
_IENavigate ($oIE,"http://www.baidu.com",0)

While 1
        $msg = GUIGetMsg()
        Select
                Case $msg = $GUI_EVENT_CLOSE
                        ExitLoop
        EndSelect
WEnd

dhwc 发表于 2013-12-27 20:38:10

啥意思啊楼上的兄弟?这个是嵌入网页,跟我这个没关系把?

dhwc 发表于 2013-12-28 14:23:49

顶一下,等达人

dhwc 发表于 2013-12-28 14:23:53

顶一下,等达人

dhwc 发表于 2013-12-29 18:48:36

达人啊,帮帮忙吧!

骗子 发表于 2013-12-30 09:52:08

本帖最后由 骗子 于 2013-12-30 09:53 编辑

$oID=_IEGetObjById ($oIE,"moodinfo360")
_IEAction($oID,"Click")
正常的话应该就两句就够了,看看运行的日志输出,是不是获取ID失败了


--> IE.au3 T3.0-1 Error from function _IEGetObjById, $_IEStatus_InvalidDataType
--> IE.au3 T3.0-1 Error from function _IEAction(Click), $_IEStatus_InvalidDataType

zch11230 发表于 2013-12-30 10:21:36

本帖最后由 zch11230 于 2013-12-30 10:33 编辑

看源文件提交地址是
http://cdsp.com.cn/cdsppoll/axxpoll2013.php?act=mood&id=moodinfo352&rnum=102
id=后面是投票的ID 就是你的moodinfo360 我这里用的最后一名 好测试是否真的是我投的
rnum是一个由parseInt(10000000*Math.random())生成的
因为不懂parseInt是怎么一个算法 尝试随便跟一个数会提示cookies被禁止 然后在parseInt的示例中找到几个返回数,测试可以正常投票 并会返回当前票数 这个数又不能反复使用 会提示error.
楼主如果把 parseInt 弄好了那用post不是更爽?

zch11230 发表于 2013-12-30 10:47:59

本帖最后由 zch11230 于 2013-12-30 13:00 编辑

测试发现parseInt(10000000*Math.random())就是返回一个最大7位的随机整数 应该用Random(1000000,9999999,1)能代替 但是我这边网站却打不开了 测试不了。

刚才好不容易网站能打开了 但是非常慢 手动IE打开提交地址能成功投票 写了个循环刷了几下又打不开了 后来突然发现最后一名的爱茉莉从我测试时候的80票刷到了180票 目前发现居然只有一个cookies每天100票的限制 cdsp_num从101开始 每投一次票 计数减1删除cookies后又可以投票了 楼主就自己搞了吧。#include <Inet.au3>
Local $i=1
While $i < 20
        ConsoleWrite($i & ":" & _INetGetSource('http://cdsp.com.cn/cdsppoll/axxpoll2013.php?act=mood&id=moodinfo363&rnum=' & Random(1000000, 9999999, 1)) & @LF)
        $i += 1
        Sleep (2000)
WEnd

dhwc 发表于 2013-12-30 15:44:20

楼上的太高端了看不懂,汗,兄弟能说简单点吗?

我就一大白菜的菜

zch11230 发表于 2013-12-30 17:44:06

这个我还怎么解释呢 上面的提交地址也有了 示例也给了 我下午对 九极生物 测试 确实只有一个cookies 100票的限制 清除后又可以继续投票了,到现在差不多刷了1000票。

ak47gglllk 发表于 2013-12-31 09:44:09

额,学习了,感谢大大些。学习,学习

dhwc 发表于 2013-12-31 11:14:58

感谢楼上的兄弟

funco 发表于 2014-1-12 17:01:21

沒太看明白高人的代碼~
還得多學習啊~~
页: [1]
查看完整版本: 帮朋友投票 ie的_IEGetObjById函数怎么用?