看到一个类似的批量拉黑脚本
https://github.com/overtrue/weibo-dogs-killer
https://github.com/overtrue/weibo-dogs-killer/blob/master/weibo-dogs-killer.js
该脚本演示了另一种定时执行的办法,以及异步方式调用XMLHttpRequest对象的open方法,TK则是同步方式调用open。open第三形参决定异步、同步。
下列脚本采集"微博社区志愿者(微博监督员)官方微博"的粉丝列表
https://weibo.com/p/1006066264005608/follow?relate=fans&wvr=6
https://github.com/LyZane/weibo-supervisor-jsCrawler
https://github.com/LyZane/weibo-supervisor-jsCrawler/blob/master/main.js
上述脚本已不适用于当前新浪微博,修改脚本简单获取目标用户粉丝列表前5页数据
function crawl ( pagemax, interval )
{
/*
* <a bpfilter="page" class="page S_txt1 S_bg1">1</a>
*/
if ( 1 != document.querySelector( ".page.S_bg1" ).innerText )
{
console.error( "请先手动跳转到粉丝列表的第一页后再执行此脚本!" );
return;
} var uidlist = [];
var page = 1;
var timer = setInterval
(
function ()
{
if ( page != document.querySelector( ".page.S_bg1" ).innerText )
{
return;
}
console.log( "第" + page + "页采集中..." );
var list = document.querySelectorAll( "li.follow_item.S_line2" );
// console.log( list )
for ( var i = 0; i < list.length; i++ )
{
var item = list[i].childNodes[1].childNodes[3].childNodes[1].childNodes[1];
var usercard = item.attributes["usercard"].value;
// usercard.match( /(?:id=)(\d+)/ )[0].match( /\d+/ )[0];
var uid = usercard.match( /(?:id=)(\d+)/ )[1];
// console.log( uid )
uidlist.push( uid );
}
console.log( "第" + page + "页采集完毕" );
page++;
if ( page <= pagemax )
{
document.querySelector( ".page.next" ).click();
}
else
{
clearInterval( timer );
console.info( uidlist );
}
},
interval * 1000
);
}
/*
* 服务端有限制,最多5页。每1秒采集1页数据。
*/
crawl( 5, 1 );
TA们是想批量拉黑微博监督员,我则是临时试一下JS编程。我是良民,所以上述脚本没有针对性过滤,也没有合并拉黑操作。
不会js编程,为了改出上述脚本,临时搜了一篇
document.querySelector()方法 - [2018-03-22]
https://blog.csdn.net/huangbaokang/article/details/79659246