获取新浪微博目标用户粉丝列表前5页数据
2022-8-16 23:59:53 Author: mp.weixin.qq.com(查看原文) 阅读量:14 收藏

看到一个类似的批量拉黑脚本

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( 51 );

TA们是想批量拉黑微博监督员,我则是临时试一下JS编程。我是良民,所以上述脚本没有针对性过滤,也没有合并拉黑操作。

不会js编程,为了改出上述脚本,临时搜了一篇

document.querySelector()方法 - [2018-03-22]
https://blog.csdn.net/huangbaokang/article/details/79659246

文章来源: http://mp.weixin.qq.com/s?__biz=MzUzMjQyMDE3Ng==&mid=2247486110&idx=1&sn=0926e9e81ae9e6f7351607842cc0538c&chksm=fab2c9a1cdc540b78a39f32fc9d9145d96735becd0d3e7c985242737af2849578105b5ea77ae#rd
如有侵权请联系:admin#unsafe.sh