From ddd64e86d1edd7c6cebd1fcca86d9a84b63e6515 Mon Sep 17 00:00:00 2001 From: zhixc <93297256+zhixc@users.noreply.github.com> Date: Sat, 29 Apr 2023 14:07:51 +0000 Subject: [PATCH 1/2] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E9=98=BF=E9=87=8C=E4=BA=91=E7=9B=98=E6=90=9C=E7=B4=A2=EF=BC=8C?= =?UTF-8?q?=E5=90=8D=E4=B8=BA=EF=BC=9APanSearch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/github/catvod/spider/PanSearch.java | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 app/src/main/java/com/github/catvod/spider/PanSearch.java diff --git a/app/src/main/java/com/github/catvod/spider/PanSearch.java b/app/src/main/java/com/github/catvod/spider/PanSearch.java new file mode 100644 index 0000000..d755003 --- /dev/null +++ b/app/src/main/java/com/github/catvod/spider/PanSearch.java @@ -0,0 +1,89 @@ +package com.github.catvod.spider; + +import android.content.Context; +import com.github.catvod.crawler.Spider; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import org.json.JSONArray; +import org.json.JSONObject; +import org.jsoup.Jsoup; +import org.jsoup.nodes.Document; + +import java.net.URLEncoder; + + +/** + * @author zhixc + * + */ +public class PanSearch extends Spider { + @Override + public void init(Context context, String extend) { + super.init(context, extend); + } + + @Override + public String searchContent(String key, boolean quick) { + try { + JSONArray videoArray = new JSONArray(); + + Request request = new Request.Builder() + .get() + .url("https://www.pansearch.me") + .addHeader("User-Agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36") + .build(); + OkHttpClient okHttpClient = new OkHttpClient(); + Response response = okHttpClient.newCall(request).execute(); + String homePageStr = response.body().string(); + response.close(); + Document document = Jsoup.parse(homePageStr); + String html = document.select("script[type=application/json]").html(); + String html2 = document.select("script").get(0).html(); + String html3 = document.select("script").get(0).data(); + String html4 = document.select("script[id=__NEXT_DATA__]").get(0).data(); + String html5 = document.select("script[id=__NEXT_DATA__]").html(); + System.out.println(html2); + JSONObject nextData = new JSONObject(html4); + String buildId = nextData.getString("buildId"); + + String searchUrl = "https://www.pansearch.me/_next/data/" + buildId + "/search.json?keyword=" + URLEncoder.encode(key) + "&pan=aliyundrive"; + Request request2 = new Request.Builder() + .get() + .url(searchUrl) + .addHeader("User-Agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36") + .addHeader("referer", "https://www.pansearch.me/") + .addHeader("x-nextjs-data", "1") + .build(); + Response response2 = okHttpClient.newCall(request2).execute(); + String searchResult = response2.body().string(); + response2.close(); + JSONArray dataArray = new JSONObject(searchResult) + .getJSONObject("pageProps") + .getJSONObject("data") + .getJSONArray("data"); + for (int i = 0; i < dataArray.length(); i++) { + JSONObject item = dataArray.getJSONObject(i); + String content = item.get("content") + ""; + String image = item.get("image") + ""; + String[] split = content.split("\\n"); + String title = split.length > 0 ? split[0].replaceAll("]+>", "") : "无题,李商隐"; + String url = Jsoup.parse(content).select("a").attr("href"); + String time = item.get("time") + ""; + JSONObject v = new JSONObject(); + v.put("vod_id", url); + v.put("vod_name", title); + v.put("vod_pic", image); + v.put("vod_remarks", time); + videoArray.put(v); + } + + JSONObject result = new JSONObject(); + result.put("list", videoArray); + return result.toString(); + } catch (Exception e) { + e.printStackTrace(); + } + return ""; + } +} From 96cff470cc0258f61aca1682277296d955f3cd14 Mon Sep 17 00:00:00 2001 From: zhixc <93297256+zhixc@users.noreply.github.com> Date: Sat, 29 Apr 2023 14:18:39 +0000 Subject: [PATCH 2/2] =?UTF-8?q?=E7=BB=A7=E6=89=BF=E7=B1=BBbug=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/com/github/catvod/spider/PanSearch.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/github/catvod/spider/PanSearch.java b/app/src/main/java/com/github/catvod/spider/PanSearch.java index d755003..413358d 100644 --- a/app/src/main/java/com/github/catvod/spider/PanSearch.java +++ b/app/src/main/java/com/github/catvod/spider/PanSearch.java @@ -17,7 +17,7 @@ import java.net.URLEncoder; * @author zhixc * */ -public class PanSearch extends Spider { +public class PanSearch extends Ali { @Override public void init(Context context, String extend) { super.init(context, extend);