栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

csdn 涨粉攻略 代码(四)粉丝名 webmagic 爬虫

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

csdn 涨粉攻略 代码(四)粉丝名 webmagic 爬虫

获取粉丝名 

package com.web;

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.Spider;
import us.codecraft.webmagic.processor.PageProcessor;
import us.codecraft.webmagic.selector.JsonPathSelector;


public class UsernameSpider implements PageProcessor {

    

    private final String TAG = UsernameSpider.class.getSimpleName();

    List usernames = new ArrayList<>();

    private Site site = Site
            .me()
            .setDomain("blog.csdn.net")
            .setSleepTime(1000)
            // 便于测试,休眠较长时间。
            .setUserAgent(
                    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.65 Safari/537.31");

    @Override
    public void process(Page page) {
        String rawText = page.getRawText();
        String data = new JsonPathSelector("$.data").select(rawText);
        String replace = data.replace("{list=", "{"list":");
//        String selectStr = new JsonPathSelector("$.list").select(replace);
        List selectList = new JsonPathSelector("$.list").selectList(replace);
        for (String s : selectList) {
            String username = getUsername(s);
            usernames.add(username);
        }
    }

    public String getUsername(String line) {
        String s = ""username": "m0_70555190"";
        String pattern = "("username":".+?")";

        // 创建 Pattern 对象
        Pattern r = Pattern.compile(pattern);

        // 现在创建 matcher 对象
        Matcher m = r.matcher(line);
        if (m.find()) {
            String username = m.group(0);
            String replace = username.replace(""username":"", "");
            String result = replace.replace(""", "");
            return result;
        }

        return "";
    }

    @Override
    public Site getSite() {
        return site;
    }

}

测试类


package com.web;

import java.util.List;

import us.codecraft.webmagic.Spider;


public class T2 {
    public static void main2(String[] args) {
        String username = "weixin_45781381";
        String fanUrl = "https://blog.csdn.net/community/home-api/v2/get-fans-list" +
                "?page=1&pageSize=100&id=0&noMore=true&blogUsername="+username;
        CsdnUsernameSpider csdnUsernameSpider = new CsdnUsernameSpider();
        Spider.create(csdnUsernameSpider).addUrl(fanUrl).thread(1).run();
        List usernames = csdnUsernameSpider.usernames;
        System.out.println(usernames);
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/874512.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号