在做yy爬虫的时候,发现yy这个地方没有使用webkit,还在使用ie内核,这样的话我们就可以对它内嵌的浏览器做些什么了。
信息挺好爬的,顺便分析了一下点加好友,加群和关注这几个按钮,发现到最后都是直接与客户端的setCommand方法通信的,我没有办法直接调用它客户端的函数。
使用jquery触发click是一个比较另类的方法,以前觉得别人搞得还挺神奇的,就是没往这方面想。
哦对了,它底层调用的是window.external.setCommand('addFriend',uid)方法,有兴趣的朋友可以研究研究。
常量数据表
1
2
3
|
.版本 2 .常量 activeCityFriend, "<文本长度: 97>", , $("div[class*='btn-yycity js-btn-yycity active'],div[class*='btn-yycity js-btn-yycity']").click() .常量 addFriend, "<文本长度: 206>" |
批量加好友功能代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
.版本 2 .支持库 spec .程序集 程序集1 .子程序 BatchAddFriend, , 公开, 批量加好友 .参数 uids, 整数型, 数组 .局部变量 jytb, 网页填表 .局部变量 i, 整数型 .局部变量 uid, 文本型 .局部变量 script, 文本型 jytb.初始化 (GetFindPanel ()) jytb.网页_执行脚本 (#activeCityFriend) .变量循环首 (1, 取数组成员数 (uids), 1, i) uid = uid + 到文本 (uids [i]) + “,” .变量循环尾 () uid = 文本_替换 (uid, 1, 取文本长度 (uid) - 1, , “,”, “”) script = #addFriend script = 文本_替换 (script, , , , “{uids}”, uid) 程序_延时 (1000) jytb.网页_执行脚本 (script) .子程序 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 Embedding”, 字符 (0)) .如果真 (局_句柄 = 0) 返回 (0) .如果真结束 局_句柄 = 窗口_取句柄 (局_句柄, , “Shell DocObject View”, 字符 (0)) .如果真 (局_句柄 = 0) 返回 (0) .如果真结束 局_句柄 = 窗口_取句柄 (局_句柄, , “Internet Explorer_Server”, 字符 (0)) .如果真 (局_句柄 = 0) 返回 (0) .如果真结束 调试输出 (局_句柄) 返回 (局_句柄) |
YY自动加好友的代码
实现此功能需要加载精易模块5.6和精易VIP模块 V4.31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
.版本 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!”) |
运行结果:
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对服务器之家的支持。如果你想了解更多相关内容请查看下面相关链接