利用爬虫技术清理微博“僵尸粉”

336 阅读2分钟

最近朋友告诉我她的微博粉丝数涨了很多,好奇的我去翻看了下,看了下动态也没有发现她发了什么能能快速吸粉的内容呀。粉丝怎么一下涨那么多,我也是一直在玩微博的,但是确实很少涨粉,粉丝基本都是一些认识的朋友,除非是“僵尸粉”。微博里的僵尸粉超级多的,很多人花钱就可以买到“关注”,有名无实的微博粉丝,是由系统自动产生的恶意注册的用户,不过大家应该都不喜欢有很多僵尸粉吧,毕竟都希望粉丝是真实的。

说的僵尸粉我就想到那些明星,动不动就是百万千万的粉丝,真的好奇喜欢他们的人到底有多少,又有多少是僵尸粉呢?关于微博的数据之前也采集过不少,但是关于粉丝这个没有研究过。一般要检测粉丝到底是不是僵尸粉,可以通过粉丝的粉丝数量、微博动态数这些数据去分析,那么我们今天就通过朋友的微博去检测下,流程不难,篇幅有点多,而且关于微博最近真的风控的也很烦,所以我还买了付费代理才获取到数据。获取到的粉丝url: url_fans = "weibo.com/7399148775/…大体的代码信息如下,因为是挂了代理的,所以重点分享下挂代理的部分

import java.io.IOException;
import java.net.Authenticator;
import java.net.InetSocketAddress;
import java.net.PasswordAuthentication;
import java.net.Proxy;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;


public class Demo
{
    // 代理验证信息
    final static String ProxyUser = "16EDEWIU";
    final static String ProxyPass = "205517d";

    // 代理服务器(产品官网 www.16yun.cn)
    final static String ProxyHost = "t.16yun.cn";
    final static Integer ProxyPort = 31111;

    // 设置IP切换头
    final static String ProxyHeadKey = "Proxy-Tunnel";


    public static String getUrlProxyContent(String url)
    {
        Authenticator.setDefault(new Authenticator() {
            public PasswordAuthentication getPasswordAuthentication()
            {
                return new PasswordAuthentication(ProxyUser, ProxyPass.toCharArray());
            }
        });
        // 设置Proxy-Tunnel
        Random random = new Random();
        int tunnel = random.nextInt(10000);
        String ProxyHeadVal = String.valueOf(tunnel);

        Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(ProxyHost, ProxyPort));

        try
        {
            // 处理异常、其他参数
            Document doc = Jsoup.connect(url).timeout(3000).header(ProxyHeadKey, ProxyHeadVal).proxy(proxy).get();

            if(doc != null) {
                System.out.println(doc.body().html());
            }
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }

        return null;
    }

    public static void main(String[] args) throws Exception
    {
        // 要访问的目标页面
        String targetUrl = "https://weibo.com/7399148775/fans?from=100505&wvr=6&mod=headfans&current=fans#place";


        getUrlProxyContent(targetUrl);
    }
}

通过获取到的数据分析大概是这样的,有些僵尸粉是广告营销的,有些是转发别人的,还有一些就是真的僵尸粉,最让我震惊的是朋友一千多的粉丝结果只有200个是正常的,这打击有点大呀。还有就是如果你的有收到官博发一些涨粉的消息,那你一定要注意了吗,说不定一大堆僵尸粉即将来袭。还有通过这次的数据分析我们可以想象,那些号称几千万粉丝的明星实际的粉丝估计也就那样。最后写文不易,欢迎大家来点赞交流哦。