admin
2021-07-30 a66b556036c2b3936a51fd7b7e54a204eb31dc14
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
package com.yeshi.buwan.util.video.shortvideo;
 
import com.yeshi.buwan.util.StringUtil;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.yeshi.utils.HttpUtil;
 
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
public class TencentWebUtil {
 
 
    public static Map<String, String> parseParams(String url) {
        //清除参数
        String param = null;
        if (url.indexOf("?") > -1) {
            param = url.substring(url.indexOf("?"));
        }
        if (!url.contains("v.qq.com")) {
            return null;
        }
        String[] params = param.split("&");
        Map<String, String> map = new HashMap<>();
        for (String p : params) {
            map.put(p.split("=")[0], URLDecoder.decode(p.split("=")[1]));
        }
        return map;
    }
 
 
    public static void getVideoList(Map<String, String> params, int page) throws Exception {
        if (params == null)
            throw new Exception("参数为空");
        int pageSize = 30;
        params.put("append", "1");
        params.put("listpage", page + "");
        params.put("offset", (page - 1) * pageSize + "");
        params.put("pagesize", pageSize + "");
 
        String url = "https://v.qq.com/x/bu/pagesheet/list";
        Map<String, String> headers = new HashMap<>();
        headers.put("referer", "https://v.qq.com/channel/ent");
        headers.put("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.164 Safari/537.36");
        String result = HttpUtil.get(url, params, headers);
        Document document = Jsoup.parse(result);
        Elements els = document.getElementsByClass("list_item");
        for (int i = 0; i < els.size(); i++) {
            Element ele = els.get(i);
            String href = ele.getElementsByTag("a").get(0).attr("href");
            String id = ele.getElementsByTag("a").get(0).attr("data-float");
            String title = ele.getElementsByTag("a").get(0).attr("title");
            title = new String(title.getBytes("ISO-8859-1"), "UTF-8");
            String picture = ele.getElementsByTag("img").get(0).attr("src");
            picture = picture.startsWith("http") ? picture : "https:" + picture;
            String duration = ele.getElementsByClass("figure_caption").get(0).ownText();
            System.out.println(duration);
        }
 
    }
 
 
    public static void main(String[] args) throws Exception {
        getVideoList(parseParams("https://v.qq.com/channel/ent?_all=1&channel=ent&iarea=2&itype=-1&listpage=1&sort=40"), 1);
    }
}