Bili use wbi

pull/78/head
FongMi 2 years ago
parent f7f667289f
commit 81cd2ff36b
  1. 8
      app/src/main/java/com/github/catvod/bean/bili/Wbi.java
  2. 9
      app/src/main/java/com/github/catvod/spider/Bili.java
  3. BIN
      jar/custom_spider.jar
  4. 2
      jar/custom_spider.jar.md5

@ -33,15 +33,15 @@ public class Wbi {
return key.toString(); return key.toString();
} }
public String getParam(LinkedHashMap<String, Object> params) { public String getQuery(LinkedHashMap<String, Object> params) {
String imgKey = Uri.parse(getImgUrl()).getLastPathSegment().split("\\.")[0]; String imgKey = Uri.parse(getImgUrl()).getLastPathSegment().split("\\.")[0];
String subKey = Uri.parse(getSubUrl()).getLastPathSegment().split("\\.")[0]; String subKey = Uri.parse(getSubUrl()).getLastPathSegment().split("\\.")[0];
String mixinKey = getMixinKey(imgKey, subKey); String mixinKey = getMixinKey(imgKey, subKey);
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
params.put("wts", System.currentTimeMillis() / 1000); params.put("wts", System.currentTimeMillis() / 1000);
for (String key : params.keySet()) sb.append(key).append("=").append(URLEncoder.encode(params.get(key).toString())).append("&"); for (String key : params.keySet()) sb.append(key).append("=").append(URLEncoder.encode(params.get(key).toString())).append("&");
String param = Util.substring(sb.toString()); String query = Util.substring(sb.toString());
String wbiSign = Util.MD5(param + mixinKey); String w_rid = Util.MD5(query + mixinKey);
return param + "&w_rid=" + wbiSign; return query + "&w_rid=" + w_rid;
} }
} }

@ -13,6 +13,7 @@ import com.github.catvod.bean.bili.Data;
import com.github.catvod.bean.bili.Media; import com.github.catvod.bean.bili.Media;
import com.github.catvod.bean.bili.Page; import com.github.catvod.bean.bili.Page;
import com.github.catvod.bean.bili.Resp; import com.github.catvod.bean.bili.Resp;
import com.github.catvod.bean.bili.Wbi;
import com.github.catvod.crawler.Spider; import com.github.catvod.crawler.Spider;
import com.github.catvod.net.OkHttp; import com.github.catvod.net.OkHttp;
import com.github.catvod.utils.Json; import com.github.catvod.utils.Json;
@ -47,6 +48,7 @@ public class Bili extends Spider {
private JsonObject extend; private JsonObject extend;
private boolean login; private boolean login;
private boolean isVip; private boolean isVip;
private Wbi wbi;
private static Map<String, String> getHeader() { private static Map<String, String> getHeader() {
Map<String, String> headers = new HashMap<>(); Map<String, String> headers = new HashMap<>();
@ -114,9 +116,11 @@ public class Bili extends Spider {
@Override @Override
public String categoryContent(String tid, String pg, boolean filter, HashMap<String, String> extend) throws Exception { public String categoryContent(String tid, String pg, boolean filter, HashMap<String, String> extend) throws Exception {
if (tid.endsWith("/{pg}")) { if (tid.endsWith("/{pg}")) {
String mid = tid.split("/")[0]; LinkedHashMap<String, Object> params = new LinkedHashMap<>();
params.put("mid", tid.split("/")[0]);
params.put("pn", pg);
List<Vod> list = new ArrayList<>(); List<Vod> list = new ArrayList<>();
String json = OkHttp.string("https://api.bilibili.com/x/space/wbi/arc/search?mid=" + mid + "&pn=" + pg, getHeader()); String json = OkHttp.string("https://api.bilibili.com/x/space/wbi/arc/search?" + wbi.getQuery(params), getHeader());
for (Resp.Result item : Resp.Result.arrayFrom(Resp.objectFrom(json).getData().getList().getAsJsonObject().get("vlist"))) list.add(item.getVod()); for (Resp.Result item : Resp.Result.arrayFrom(Resp.objectFrom(json).getData().getList().getAsJsonObject().get("vlist"))) list.add(item.getVod());
return Result.string(list); return Result.string(list);
} else { } else {
@ -275,6 +279,7 @@ public class Bili extends Spider {
Data data = Resp.objectFrom(json).getData(); Data data = Resp.objectFrom(json).getData();
login = data.isLogin(); login = data.isLogin();
isVip = data.isVip(); isVip = data.isVip();
wbi = data.getWbi();
//getQRCode(); //getQRCode();
} }

Binary file not shown.

@ -1 +1 @@
eb74b4e7f4228fa6b063bc9e04ecc751 349a7accbf77c311dc3b82150a9f29ea

Loading…
Cancel
Save