在做yy爬虫的时候,发现yy这个地方没有使用webkit,还在使用ie内核,这样的话我们就可以对它内嵌的浏览器做些什么了。

信息挺好爬的,顺便分析了一下点加好友,加群和关注这几个按钮,发现到最后都是直接与客户端的setCommand方法通信的,我没有办法直接调用它客户端的函数。

使用jquery触发click是一个比较另类的方法,以前觉得别人搞得还挺神奇的,就是没往这方面想。

哦对了,它底层调用的是window.external.setCommand(\'addFriend\',uid)方法,有兴趣的朋友可以研究研究。

常量数据表

.版本 2
.常量 activeCityFriend, \"<文本长度: 97>\", , $(\"div[class*=\'btn-yycity js-btn-yycity active\'],div[class*=\'btn-yycity js-btn-yycity\']\").click()
.常量 addFriend, \"<文本长度: 206>\"

批量加好友功能代码

.版本 2
.支持库 spec
.程序集 程序集1
.子程序 BatchAddFriend, , 公开, 批量加好友
.参数 uids, 整数型, 数组
.局部变量 jytb, 网页填表
.局部变量 i, 整数型
.局部变量 uid, 文本型
.局部变量  , 文本型
jytb.初始化 (GetFindPanel ())
jytb.网页_执行脚本 (#activeCityFriend)
.变量循环首 (1, 取数组成员数 (uids), 1, i)
  uid = uid + 到文本 (uids [i]) + “,”
.变量循环尾 ()
uid = 文本_替换 (uid, 1, 取文本长度 (uid) - 1, , “,”, “”)
  = #addFriend
  = 文本_替换 ( , , , , “{uids}”, uid)
程序_延时 (1000)
jytb.网页_执行脚本 ( )
.子程序 GetAddFriendWindows, , 公开, 获取添加好友窗口句柄数组
.参数 handles, 整数型, 参考 数组
窗口_模糊遍历窗口 (, “QWidget”, “添加联系人”, handles)
.子程序 Arrange, , 公开, 排列窗口
.参数 handles, 整数型, 数组
.局部变量 rect, 精易_矩形
.局部变量 right_offs, 整数型
.局部变量 top_offs, 整数型
.局部变量 i, 整数型
窗口_置位置和大小 (handles [1], 0, 0)
rect = 窗口_取位置和大小 (handles [1])
right_offs = 0
.变量循环首 (2, 取数组成员数 (handles), 1, i)
  right_offs = right_offs + rect.右边
  窗口_置位置和大小 (handles [i], 0, right_offs)
.变量循环尾 ()
.子程序 Input, , 公开, 输入内容
.参数 handles, 整数型, 数组
.参数 text, 文本型
.局部变量 i, 整数型
.局部变量 handle, 整数型
.局部变量 rect, 精易_矩形
.变量循环首 (1, 取数组成员数 (handles), 1, i)
  handle = handles [i]
  rect = 窗口_取位置和大小 (handle)
  .如果真 (rect.底边 = 280)
    窗口_激活 (handle)
    鼠标_消息 (handle, 110, 125)
    程序_延时 (200)
    文本_投递 (handle, text)
    程序_延时 (200)
    鼠标_消息 (handle, 365, 260)
  .如果真结束
  窗口_关闭 (handle)
.变量循环尾 ()
.子程序 GetFindPanel, 整数型, , 本子程序采用【精易编程助手】生成,成功返回窗口句柄,失败返回0
.局部变量 局_句柄, 整数型
局_句柄 = 窗口_取句柄 (, , “QWidget”, “查找”)
.如果真 (局_句柄 = 0)
  返回 (0)
.如果真结束
局_句柄 = 窗口_取句柄 (局_句柄, , “YYBROWSER_AXCONTAINER”, “YYIE”)
.如果真 (局_句柄 = 0)
  返回 (0)
.如果真结束
局_句柄 = 窗口_取句柄 (局_句柄, , “Shell  ding”, 字符 (0))
.如果真 (局_句柄 = 0)
  返回 (0)
.如果真结束
局_句柄 = 窗口_取句柄 (局_句柄, , “Shell Doc  View”, 字符 (0))
.如果真 (局_句柄 = 0)
  返回 (0)
.如果真结束
局_句柄 = 窗口_取句柄 (局_句柄, , “Internet Explorer_Server”, 字符 (0))
.如果真 (局_句柄 = 0)
  返回 (0)
.如果真结束
调试输出 (局_句柄)
返回 (局_句柄)

YY自动加好友的代码

实现此功能需要加载精易模块5.6和精易VIP模块 V4.31

.版本 2
.程序集 窗口程序集_启动窗口
.程序集变量 handles, 整数型, , \"0\"
.子程序 _BatchAddFriend按钮_被单击
.局部变量 users, 整数型, , \"0\"
加入成员 (users, 99984964)
加入成员 (users, 999684876)
加入成员 (users, 998943844)
加入成员 (users, 99746075)
加入成员 (users, 997411860)
BatchAddFriend (users)
.子程序 _GetAddFriendWindows按钮_被单击
GetAddFriendWindows (handles)
Arrange (handles)
.子程序 _Input按钮_被单击
Input (handles, “Hello world!”)

运行结果:

\"\"

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

收藏 打印