using System.Text.RegularExpressions; using XFEExtension.NetCore.StringExtension; using XFEExtension.NetCore.XFETransform.JsonConverter; using XFENewsApplication.Core.Utilities.Helpers; class Program { //[SMTest] public static async Task TestMethod() { foreach (var result in (await ClimbHelper.ClimbMSNNews(new CancellationToken())).NewsSourceList) { Console.WriteLine(result.Title); } } [SMTest(1, "china")] [SMTest(2, "life")] [SMTest(1, "law")] [SMTest(1, "society")] [SMTest(2, "ent")] [SMTest(1, "tech")] [SMTest(1, "world")] [SMTest(2, "china")] [SMTest(2, "law")] [SMTest(3, "tech")] [SMTest(3, "world")] [SMTest(1, "life")] [SMTest(3, "society")] [SMTest(2, "world")] [SMTest(3, "law")] [SMTest(1, "ent")] [SMTest(3, "china")] [SMTest(3, "ent")] [SMTest(2, "society")] [SMTest(3, "life")] [SMTest(2, "tech")] public static async Task TestCCTVClimb(int index, string type) { using var client = new HttpClient(); client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36 Edg/135.0.0.0"); QueryableJsonNode jsonNode = await client.GetStringAsync($"https://news.cctv.com/2019/07/gaiban/cmsdatainterface/page/{type}_{index}.jsonp?cb={type}"); var file = File.OpenWrite("CCTV.csv"); var writer = new StreamWriter(file); file.Position = file.Length; foreach (var node in jsonNode["data"]["list"]["package:list", "brief", "title", "url"].PackageInListObject()) { //Console.WriteLine($"标题:{node["title"]}({node["url"]})\n{node["brief"]}\n"); writer.WriteLine($"{node["title"]},{type}"); } writer.Close(); } [SMTest(1)] [SMTest(2)] [SMTest(3)] public static async Task TestCCTVEconomyClimb(int index) { using var client = new HttpClient(); client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36 Edg/135.0.0.0"); QueryableJsonNode jsonNode = await client.GetStringAsync($"https://news.cctv.com/2019/07/gaiban/cmsdatainterface/page/economy_zixun_{index}.jsonp?cb=economy_zixun"); var file = File.OpenWrite("CCTV.csv"); var writer = new StreamWriter(file); file.Position = file.Length; foreach (var node in jsonNode["data"]["list"]["package:list", "title"].PackageInListObject()) { writer.WriteLine($"{node["title"]},eco"); } writer.Close(); } [SMTest] public static async Task TestCCTVMilitaryClimb() { using var client = new HttpClient(); client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36 Edg/135.0.0.0"); QueryableJsonNode jsonNode = await client.GetStringAsync("https://military.cctv.com/data/index.json"); var file = File.OpenWrite("CCTV.csv"); var writer = new StreamWriter(file); file.Position = file.Length; foreach (var node in jsonNode["rollData"]["package:list", "title"].PackageInListObject()) { writer.WriteLine($"{Regex.Unescape(node["title"].ToString())},army"); } writer.Close(); } //[SMTest] public static async Task TestM3u8() { using var client = new HttpClient(); client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36 Edg/135.0.0.0"); Console.WriteLine(await client.GetStringAsync($"https://vdn.apps.cntv.cn/api/getHttpVideoInfo.do?pid=87b7efc3c7d84b45a288336e510e880e&client=flash&im=0&tsp=1744734329&vn=2049&vc=&uid=&wlan=")); } //[SMTest] public static async Task TestWeiboHotSearch() { using var client = new HttpClient(); client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36 Edg/135.0.0.0"); QueryableJsonNode jsonNode = await client.GetStringAsync("https://m.weibo.cn/api/container/getIndex?containerid=106003type%3D25%26t%3D3%26disable_hot%3D1%26filter_type%3Drealtimehot&luicode=20000061&lfid=5070140584495876"); foreach (var node in jsonNode["data"]["cards"].GetChildNodes().First()["card_group"]["package:list", "desc", "desc_extr", "icon"].PackageInListObject()) { if (node.TryGetValue("desc_extr", out var desc_extr) && !desc_extr.ToString().IsNullOrWhiteSpace()) Console.WriteLine($"{Regex.Unescape(node["desc"].ToString())}\t {Regex.Unescape(desc_extr.ToString())}"); } } //[SMTest] public static async Task TestBilibiliHotSearch() { using var client = new HttpClient(); client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36 Edg/135.0.0.0"); QueryableJsonNode jsonNode = await client.GetStringAsync($"https://api.bilibili.com/x/web-interface/wbi/search/square?limit=50&platform=web&web_location=333.1007&w_rid=&wts={DateTimeOffset.Now.ToUnixTimeSeconds()}"); foreach (var node in jsonNode["data"]["trending"]["list"]["package:list", "keyword", "heat_score", "icon"].PackageInListObject()) { Console.WriteLine($"{node["keyword"]}\t {node["heat_score"]}"); } } }