直接上源码 拿走就能用
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.14.3</version>
</dependency>
<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;
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;
}
}