java weibo 热搜

直接上源码 拿走就能用

        <!--Java的HTML解释器-->
        <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.14.3</version>
        </dependency>
        <!--HuTool工具包-->
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>4.5.15</version>
        </dependency>
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import org.jsoup.Jsoup;
import org.jsoup.select.Elements;

import java.util.HashMap;

/**
 * @Description
 * @Author yyg
 * @Date 2023/2/15 0015 23:51
 */
public class WeiBoHot {
    public static void main(String[] args){
        Object sub = null;
        while (true) {

            String tid = getParamOne();
            HashMap subSubp = getParamTwo(tid);
            sub = subSubp.get("sub");

            if (!"null".equals(sub)) {
                JSONArray weiBoHotList = getWeiBoHotList(subSubp);
                System.out.println(weiBoHotList);
                break;
            }
        }

    }

    public static String getParamOne() {
        String url = "https://passport.weibo.com/visitor/genvisitor";
        HashMap<String, Object> paramMap = new HashMap<>();
        paramMap.put("cb", "gen_callback");
        paramMap.put("fp", "{\"os\":\"1\",\"browser\":\"Chrome70,0,3538,25\",\"fonts\":\"undefined\",\"screenInfo\":\"1920*1080*24\",\"plugins\":\"Portable Document Format::internal-pdf-viewer::Chromium PDF Plugin|::mhjfbmdgcfjbbpaeojofohoefgiehjai::Chromium PDF Viewer|::gbkeegbaiigmenfmjfclcdgdpimamgkj::Google文档、表格及幻灯片的Office编辑扩展程序|::internal-nacl-plugin::Native Client\"}");
        String s = HttpUtil.get(url, paramMap);
        String tid = s.split(",")[2].split("\"")[5];
        return tid;
    }

    public static HashMap<String, Object> getParamTwo(String tid) {
        String url = "https://passport.weibo.com/visitor/visitor";
        HashMap<String, Object> paramMap = new HashMap<>();
        paramMap.put("a", "incarnate");
        paramMap.put("t", tid);
        paramMap.put("w", 3);
        paramMap.put("c", 100);
        paramMap.put("cb", "cross_domain");
        paramMap.put("from", "weibo");
        String s2 = HttpUtil.get(url, paramMap);
        String sub = s2.split(",")[2].split(":")[2].replace("\"", "");
        String subp = s2.split(",")[3].split("\"")[3];

        HashMap<String, Object> paramMap2 = new HashMap<>();
        paramMap2.put("sub", sub);
        paramMap2.put("subp", subp);
        return paramMap2;
    }

    public static JSONArray getWeiBoHotList(HashMap<String, Object> subSubp) {
        String url = "https://s.weibo.com/top/summary?cate=realtimehot";
        Elements td = Jsoup.parse(HttpUtil.get(url, subSubp)).select("tbody").select("td[class=td-02]");
        JSONArray WeiBoHotList = new JSONArray();
        for (int i = 0; i < td.size(); i++) {
            String span = td.get(i).select("span").text();
            int length = span.split(" ").length;
            String hot_value = span.split(" ")[length - 1];
            if(!"".equals(hot_value)){
                JSONObject WeiBoHot = new JSONObject();
                WeiBoHot.put("title",td.get(i).select("a").text());
                WeiBoHot.put("link","https://s.weibo.com" + td.get(i).select("a").attr("href"));
                WeiBoHot.put("hot_value",hot_value);
                WeiBoHotList.add(WeiBoHot);
            }
        }
        return WeiBoHotList;
    }


}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值