xb6v 部分
This commit is contained in:
parent
b983a94bbc
commit
b7870d5e0b
|
|
@ -1,5 +1,6 @@
|
||||||
package com.github.catvod.spider;
|
package com.github.catvod.spider;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.util.Base64;
|
import android.util.Base64;
|
||||||
|
|
||||||
|
|
@ -8,8 +9,10 @@ import com.github.catvod.bean.Result;
|
||||||
import com.github.catvod.bean.Vod;
|
import com.github.catvod.bean.Vod;
|
||||||
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.Util;
|
import com.github.catvod.utils.Util;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.jsoup.Jsoup;
|
import org.jsoup.Jsoup;
|
||||||
import org.jsoup.nodes.Document;
|
import org.jsoup.nodes.Document;
|
||||||
import org.jsoup.nodes.Element;
|
import org.jsoup.nodes.Element;
|
||||||
|
|
@ -21,16 +24,17 @@ import java.util.ArrayList;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
public class HkTv extends Spider {
|
public class HkTv extends Spider {
|
||||||
|
|
||||||
private static final String siteUrl = "http://www.tvyb03.com";
|
private static String siteUrl = "http://www.tvyb03.com";
|
||||||
private static final String cateUrl = siteUrl + "/vod/type/id/";
|
private static String cateUrl = siteUrl + "/vod/type/id/";
|
||||||
private static final String detailUrl = siteUrl + "/vod/detail/id/";
|
private static String detailUrl = siteUrl + "/vod/detail/id/";
|
||||||
private static final String playUrl = siteUrl + "/vod/play/id/";
|
private static String playUrl = siteUrl + "/vod/play/id/";
|
||||||
private static final String searchUrl = siteUrl + "/vod/search.html?wd=";
|
private static String searchUrl = siteUrl + "/vod/search.html?wd=";
|
||||||
|
|
||||||
private HashMap<String, String> getHeaders() {
|
private HashMap<String, String> getHeaders() {
|
||||||
HashMap<String, String> headers = new HashMap<>();
|
HashMap<String, String> headers = new HashMap<>();
|
||||||
|
|
@ -38,6 +42,22 @@ public class HkTv extends Spider {
|
||||||
return headers;
|
return headers;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void init(Context context, String extend) throws Exception {
|
||||||
|
super.init(context, extend);
|
||||||
|
Document doc = Jsoup.parse(OkHttp.string(extend));
|
||||||
|
|
||||||
|
|
||||||
|
if (StringUtils.isNoneBlank(doc.html())) {
|
||||||
|
String data = doc.select("ul > li > a").first().attr("href");
|
||||||
|
siteUrl = data;
|
||||||
|
}
|
||||||
|
cateUrl = siteUrl + "/vod/type/id/";
|
||||||
|
detailUrl = siteUrl + "/vod/detail/id/";
|
||||||
|
playUrl = siteUrl + "/vod/play/id/";
|
||||||
|
searchUrl = siteUrl + "/vod/search.html?wd=";
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String homeContent(boolean filter) throws Exception {
|
public String homeContent(boolean filter) throws Exception {
|
||||||
List<Vod> list = new ArrayList<>();
|
List<Vod> list = new ArrayList<>();
|
||||||
|
|
@ -69,7 +89,7 @@ public class HkTv extends Spider {
|
||||||
List<Vod> list = new ArrayList<>();
|
List<Vod> list = new ArrayList<>();
|
||||||
String target = cateUrl + tid + ".html";
|
String target = cateUrl + tid + ".html";
|
||||||
if (!"1".equals(pg)) {
|
if (!"1".equals(pg)) {
|
||||||
target =cateUrl + pg + "/page/" + tid + ".html";
|
target = cateUrl + pg + "/page/" + tid + ".html";
|
||||||
}
|
}
|
||||||
Document doc = Jsoup.parse(OkHttp.string(target, getHeaders()));
|
Document doc = Jsoup.parse(OkHttp.string(target, getHeaders()));
|
||||||
for (Element element : doc.select("ul.myui-vodlist li a.myui-vodlist__thumb")) {
|
for (Element element : doc.select("ul.myui-vodlist li a.myui-vodlist__thumb")) {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package com.github.catvod.spider;
|
package com.github.catvod.spider;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
|
||||||
import com.github.catvod.bean.Class;
|
import com.github.catvod.bean.Class;
|
||||||
|
|
@ -16,6 +17,7 @@ import org.jsoup.nodes.Element;
|
||||||
import org.jsoup.select.Elements;
|
import org.jsoup.select.Elements;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -32,7 +34,7 @@ import okhttp3.Response;
|
||||||
* @author zhixc
|
* @author zhixc
|
||||||
* 新版6V电影网
|
* 新版6V电影网
|
||||||
*/
|
*/
|
||||||
public class Xb6v extends Spider {
|
public class Xb6v extends Cloud {
|
||||||
|
|
||||||
private final String siteUrl = "https://www.xb6v.com";
|
private final String siteUrl = "https://www.xb6v.com";
|
||||||
private String nextSearchUrlPrefix;
|
private String nextSearchUrlPrefix;
|
||||||
|
|
@ -51,6 +53,13 @@ public class Xb6v extends Spider {
|
||||||
return header;
|
return header;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void init(Context context, String extend) throws Exception {
|
||||||
|
// JsonObject ext = Json.safeObject(extend);
|
||||||
|
super.init(context, extend);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String homeContent(boolean filter) throws Exception {
|
public String homeContent(boolean filter) throws Exception {
|
||||||
List<Class> classes = new ArrayList<>();
|
List<Class> classes = new ArrayList<>();
|
||||||
|
|
@ -120,24 +129,58 @@ public class Xb6v extends Spider {
|
||||||
Document doc = Jsoup.parse(html);
|
Document doc = Jsoup.parse(html);
|
||||||
Elements sourceList = doc.select("#post_content");
|
Elements sourceList = doc.select("#post_content");
|
||||||
|
|
||||||
String circuitName = "磁力线路";
|
Vod.VodPlayBuilder builder = new Vod.VodPlayBuilder();
|
||||||
Map<String, String> playMap = new LinkedHashMap<>();
|
|
||||||
int i = 0;
|
|
||||||
for (Element source : sourceList) {
|
for (Element source : sourceList) {
|
||||||
|
//磁力
|
||||||
Elements aList = source.select("table a");
|
Elements aList = source.select("table a");
|
||||||
List<String> vodItems = new ArrayList<>();
|
String circuitName = "磁力线路";
|
||||||
|
List<Vod.VodPlayBuilder.PlayUrl> list = new ArrayList<>();
|
||||||
for (Element a : aList) {
|
for (Element a : aList) {
|
||||||
String episodeUrl = a.attr("href");
|
String episodeUrl = a.attr("href");
|
||||||
String episodeName = a.text();
|
String episodeName = a.text();
|
||||||
|
Vod.VodPlayBuilder.PlayUrl playUrl = new Vod.VodPlayBuilder.PlayUrl();
|
||||||
|
playUrl.name = episodeName;
|
||||||
|
playUrl.url = episodeUrl;
|
||||||
|
list.add(playUrl);
|
||||||
if (!episodeUrl.toLowerCase().startsWith("magnet")) continue;
|
if (!episodeUrl.toLowerCase().startsWith("magnet")) continue;
|
||||||
vodItems.add(episodeName + "$" + episodeUrl);
|
|
||||||
}
|
|
||||||
if (vodItems.size() > 0) {
|
|
||||||
i++;
|
|
||||||
playMap.put(circuitName + i, TextUtils.join("#", vodItems));
|
|
||||||
}
|
}
|
||||||
|
builder.append(circuitName, list);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
List<String> shareLinks = new ArrayList<>();
|
||||||
|
Elements sourceList2 = doc.select("div.context > div.box");
|
||||||
|
for (Element element : sourceList2) {
|
||||||
|
String catName = element.select("h3").text();
|
||||||
|
List<Vod.VodPlayBuilder.PlayUrl> playUrls = new ArrayList<>();
|
||||||
|
|
||||||
|
for (Element a : element.select("a")) {
|
||||||
|
String url = a.attr("href");
|
||||||
|
String name = a.text();
|
||||||
|
if (url.matches(Util.patternQuark)) {
|
||||||
|
shareLinks.add(url);
|
||||||
|
} else {
|
||||||
|
Vod.VodPlayBuilder.PlayUrl playUrl = new Vod.VodPlayBuilder.PlayUrl();
|
||||||
|
playUrl.name = name;
|
||||||
|
playUrl.url = url;
|
||||||
|
playUrls.add(playUrl);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
builder.append(catName, playUrls);
|
||||||
|
|
||||||
|
}
|
||||||
|
String quarkNames="";
|
||||||
|
String quarkUrls="";
|
||||||
|
if(shareLinks.size()>0){
|
||||||
|
quarkNames= super.detailContentVodPlayFrom(shareLinks);
|
||||||
|
quarkUrls= super.detailContentVodPlayUrl(shareLinks);
|
||||||
|
}
|
||||||
|
|
||||||
|
Vod.VodPlayBuilder.BuildResult result = builder.build();
|
||||||
|
|
||||||
String partHTML = doc.select(".context").html();
|
String partHTML = doc.select(".context").html();
|
||||||
String name = doc.select(".article_container > h1").text();
|
String name = doc.select(".article_container > h1").text();
|
||||||
String pic = doc.select("#post_content img").attr("src");
|
String pic = doc.select("#post_content img").attr("src");
|
||||||
|
|
@ -149,12 +192,16 @@ public class Xb6v extends Spider {
|
||||||
if (area.equals("")) area = getStrByRegex(Pattern.compile("地区:(.*?)<br>"), partHTML);
|
if (area.equals("")) area = getStrByRegex(Pattern.compile("地区:(.*?)<br>"), partHTML);
|
||||||
String remark = getStrByRegex(Pattern.compile("◎上映日期 (.*?)<br>"), partHTML);
|
String remark = getStrByRegex(Pattern.compile("◎上映日期 (.*?)<br>"), partHTML);
|
||||||
String actor = getActorOrDirector(Pattern.compile("◎演 员 (.*?)</p>"), partHTML);
|
String actor = getActorOrDirector(Pattern.compile("◎演 员 (.*?)</p>"), partHTML);
|
||||||
if (actor.equals("")) actor = getActorOrDirector(Pattern.compile("◎主 演 (.*?)</p>"), partHTML);
|
if (actor.equals(""))
|
||||||
if (actor.equals("")) actor = getActorOrDirector(Pattern.compile("主演:(.*?)<br>"), partHTML);
|
actor = getActorOrDirector(Pattern.compile("◎主 演 (.*?)</p>"), partHTML);
|
||||||
|
if (actor.equals(""))
|
||||||
|
actor = getActorOrDirector(Pattern.compile("主演:(.*?)<br>"), partHTML);
|
||||||
String director = getActorOrDirector(Pattern.compile("◎导 演 (.*?)<br>"), partHTML);
|
String director = getActorOrDirector(Pattern.compile("◎导 演 (.*?)<br>"), partHTML);
|
||||||
if (director.equals("")) director = getActorOrDirector(Pattern.compile("导演:(.*?)<br>"), partHTML);
|
if (director.equals(""))
|
||||||
|
director = getActorOrDirector(Pattern.compile("导演:(.*?)<br>"), partHTML);
|
||||||
String description = getDescription(Pattern.compile("◎简 介(.*?)<hr>", Pattern.CASE_INSENSITIVE | Pattern.DOTALL), partHTML);
|
String description = getDescription(Pattern.compile("◎简 介(.*?)<hr>", Pattern.CASE_INSENSITIVE | Pattern.DOTALL), partHTML);
|
||||||
if (description.equals("")) description = getDescription(Pattern.compile("简介(.*?)</p>", Pattern.CASE_INSENSITIVE | Pattern.DOTALL), partHTML);
|
if (description.equals(""))
|
||||||
|
description = getDescription(Pattern.compile("简介(.*?)</p>", Pattern.CASE_INSENSITIVE | Pattern.DOTALL), partHTML);
|
||||||
|
|
||||||
Vod vod = new Vod();
|
Vod vod = new Vod();
|
||||||
vod.setVodId(ids.get(0));
|
vod.setVodId(ids.get(0));
|
||||||
|
|
@ -167,8 +214,8 @@ public class Xb6v extends Spider {
|
||||||
vod.setVodActor(actor);
|
vod.setVodActor(actor);
|
||||||
vod.setVodDirector(director);
|
vod.setVodDirector(director);
|
||||||
vod.setVodContent(description);
|
vod.setVodContent(description);
|
||||||
vod.setVodPlayFrom(TextUtils.join("$$$", playMap.keySet()));
|
vod.setVodPlayFrom(result.vodPlayFrom+"$$$"+quarkNames);
|
||||||
vod.setVodPlayUrl(TextUtils.join("$$$", playMap.values()));
|
vod.setVodPlayUrl(result.vodPlayUrl+"$$$"+quarkUrls);
|
||||||
|
|
||||||
return Result.string(vod);
|
return Result.string(vod);
|
||||||
}
|
}
|
||||||
|
|
@ -180,25 +227,11 @@ public class Xb6v extends Spider {
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getActorOrDirector(Pattern pattern, String str) {
|
private String getActorOrDirector(Pattern pattern, String str) {
|
||||||
return getStrByRegex(pattern, str)
|
return getStrByRegex(pattern, str).replaceAll("<br>", "").replaceAll(" ", "").replaceAll("&", "").replaceAll("middot;", "・").replaceAll(" ", ",").replaceAll(" ", ",").replaceAll(" ", "");
|
||||||
.replaceAll("<br>", "")
|
|
||||||
.replaceAll(" ", "")
|
|
||||||
.replaceAll("&", "")
|
|
||||||
.replaceAll("middot;", "・")
|
|
||||||
.replaceAll(" ", ",")
|
|
||||||
.replaceAll(" ", ",")
|
|
||||||
.replaceAll(" ", "");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getDescription(Pattern pattern, String str) {
|
private String getDescription(Pattern pattern, String str) {
|
||||||
return getStrByRegex(pattern, str)
|
return getStrByRegex(pattern, str).replaceAll("</?[^>]+>", "").replaceAll("\n", "").replaceAll("&", "").replaceAll("middot;", "・").replaceAll("ldquo;", "【").replaceAll("rdquo;", "】").replaceAll(" ", "");
|
||||||
.replaceAll("</?[^>]+>", "")
|
|
||||||
.replaceAll("\n", "")
|
|
||||||
.replaceAll("&", "")
|
|
||||||
.replaceAll("middot;", "・")
|
|
||||||
.replaceAll("ldquo;", "【")
|
|
||||||
.replaceAll("rdquo;", "】")
|
|
||||||
.replaceAll(" ", "");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -210,21 +243,8 @@ public class Xb6v extends Spider {
|
||||||
public String searchContent(String key, boolean quick, String pg) throws Exception {
|
public String searchContent(String key, boolean quick, String pg) throws Exception {
|
||||||
String searchUrl = siteUrl + "/e/search/index.php";
|
String searchUrl = siteUrl + "/e/search/index.php";
|
||||||
if (pg.equals("1")) {
|
if (pg.equals("1")) {
|
||||||
RequestBody formBody = new FormBody.Builder()
|
RequestBody formBody = new FormBody.Builder().add("show", "title").add("tempid", "1").add("tbname", "article").add("mid", "1").add("dopost", "search").add("submit", "").addEncoded("keyboard", key).build();
|
||||||
.add("show", "title")
|
Request request = new Request.Builder().url(searchUrl).addHeader("User-Agent", Util.CHROME).addHeader("Origin", siteUrl).addHeader("Referer", siteUrl + "/").post(formBody).build();
|
||||||
.add("tempid", "1")
|
|
||||||
.add("tbname", "article")
|
|
||||||
.add("mid", "1")
|
|
||||||
.add("dopost", "search")
|
|
||||||
.add("submit", "")
|
|
||||||
.addEncoded("keyboard", key)
|
|
||||||
.build();
|
|
||||||
Request request = new Request.Builder().url(searchUrl)
|
|
||||||
.addHeader("User-Agent", Util.CHROME)
|
|
||||||
.addHeader("Origin", siteUrl)
|
|
||||||
.addHeader("Referer", siteUrl + "/")
|
|
||||||
.post(formBody)
|
|
||||||
.build();
|
|
||||||
Response response = OkHttp.newCall(request);
|
Response response = OkHttp.newCall(request);
|
||||||
String[] split = String.valueOf(response.request().url()).split("\\?searchid=");
|
String[] split = String.valueOf(response.request().url()).split("\\?searchid=");
|
||||||
nextSearchUrlPrefix = split[0] + "index.php?page=";
|
nextSearchUrlPrefix = split[0] + "index.php?page=";
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ public class HKTvTest {
|
||||||
mockContext = RuntimeEnvironment.application;
|
mockContext = RuntimeEnvironment.application;
|
||||||
Init.init(mockContext);
|
Init.init(mockContext);
|
||||||
spider = new HkTv();
|
spider = new HkTv();
|
||||||
spider.init(mockContext, "");
|
spider.init(mockContext, "http://www.hktvyb.vip/");
|
||||||
}
|
}
|
||||||
|
|
||||||
@org.junit.Test
|
@org.junit.Test
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -120,7 +120,8 @@
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"api": "csp_HkTv",
|
"api": "csp_HkTv",
|
||||||
"searchable": 0,
|
"searchable": 0,
|
||||||
"filterable": 1
|
"filterable": 1,
|
||||||
|
"ext": "http://www.hktvyb.vip/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "NGkt",
|
"key": "NGkt",
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue