原來想給QQ群內的成員發郵件,找了一個現成的軟件,沒想到居然有QQ盜號病毒,很不爽。就決定自己動手,豐衣足食。
首先,我想到如果能夠直接從QQ群成員列表中把所有成員拷貝出來,豈不是很方便。不過QQ明顯意識到了這一點。
於是打開網頁版的QQ群,這里面總有成員列表吧。在頁面上,只能能看到的東西,就沒有JavaScript程序員拿不到的東西。
下面給出具體的操作步驟:
1. 打開一個QQ群的通訊錄頁面。
2. 打開FireBug,在腳本區域輸入如下 22 行JavaScript 代碼:
1
function trimQQNumber(item) {
2 var num = $.trim($(item).text());
3 return num.substr(1, num.length - 2);
4 }
5
6 var qunId = trimQQNumber($('.groupInfoCell span.fcgray'));
7
8 var pageCount = parseInt($('.pageArea a:last').text(), 10);
9
10 var qqs = [];
11
12 function retrieve(pageNumber) {
13
14 $.get('http://qun.qq.com/air/' + qunId + '/addr/index/type/0/p/' + pageNumber + '?w=n&_=' + Math.random(), function (data) {
15
16 $(data).find('ul.addressPat span.fcgray').each( function (index, item) {
17
18 var num = trimQQNumber(item);
19
20 var name = $.trim($(item).parents('.baseInfo').find('.userName a').attr('title'));
21
22
23 qqs.push(num + ',\t' + name + '\r\n');
24
25 });
26
27 if(pageNumber < pageCount) {
28 retrieve(pageNumber + 1);
29 } else {
30 console.log(qqs.join(''));
31 }
32
33 });
34
35 }
36
37 retrieve(1);
2 var num = $.trim($(item).text());
3 return num.substr(1, num.length - 2);
4 }
5
6 var qunId = trimQQNumber($('.groupInfoCell span.fcgray'));
7
8 var pageCount = parseInt($('.pageArea a:last').text(), 10);
9
10 var qqs = [];
11
12 function retrieve(pageNumber) {
13
14 $.get('http://qun.qq.com/air/' + qunId + '/addr/index/type/0/p/' + pageNumber + '?w=n&_=' + Math.random(), function (data) {
15
16 $(data).find('ul.addressPat span.fcgray').each( function (index, item) {
17
18 var num = trimQQNumber(item);
19
20 var name = $.trim($(item).parents('.baseInfo').find('.userName a').attr('title'));
21
22
23 qqs.push(num + ',\t' + name + '\r\n');
24
25 });
26
27 if(pageNumber < pageCount) {
28 retrieve(pageNumber + 1);
29 } else {
30 console.log(qqs.join(''));
31 }
32
33 });
34
35 }
36
37 retrieve(1);
3. 點擊運行,在左側結果區域就能看到所有QQ群成員的用戶名和QQ號了。

另:請勿用於非法用途。
廣而告之:基於ExtJS的專業Asp.Net控件庫(FineUI),做國內最好的開源控件庫!
