头条、知乎热搜排行榜
using QQ;using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.Data;
namespace HotSearch
{
enum Type
{
Zhihu,
Toutiao
};
struct Con
{
public string title;
public string hotValue;
public string url;
}
class GetData
{
private string ZhihuAPI = @"https://api.codelife.cc/api/top/list?lang=cn&id=mproPpoq6O&size=50";
private string ToutiaoAPI = @"https://api.codelife.cc/api/top/list?lang=cn&id=toutiao&size=50";
private Dictionary<Type, string> typeApiDic = new Dictionary<Type, string>();
public GetData()
{
typeApiDic.Add(Type.Toutiao, this.ToutiaoAPI);
typeApiDic.Add(Type.Zhihu, this.ZhihuAPI);
}
public string conHtml(Type type, string title = "")
{
List<Con> conList = this.Get(type);
string conStr = this.conHtml(conList, title);
return conStr;
}
private List<Con> Get(Type type)
{
List<Con> res = new List<Con>();
string url = typeApiDic;
string conStr = "";
bool isReturn = webRequest.Get(url, "", out conStr);
if (!string.IsNullOrWhiteSpace(conStr))
{
JObject jsonData = JObject.Parse(conStr);
JArray jsonDataArray = (JArray)jsonData["data"];
foreach (var item in jsonDataArray)
{
Con conItem = new Con();
conItem.title = (string)item["title"];
string hot = (string)item["hotValue"];
conItem.hotValue = string.IsNullOrWhiteSpace(hot) ? "" : hot.Replace("热度", "");
string link = (string)item["link"];
if (!string.IsNullOrWhiteSpace(link))
{
conItem.url = System.Web.HttpUtility.UrlDecode(link, Encoding.UTF8); //Encoding.GetEncoding("GB2312")
}
res.Add(conItem);
}
}
else
{
Log.writeLog(string.Format("url{0} 返回值为空", url), true);
}
return res;
}
private string conHtml(List<Con> conList, string title = "")
{
StringBuilder sb = new StringBuilder();
if (!string.IsNullOrWhiteSpace(title))
{
sb.Append("<font color = 'Red' ><b> " + title + "</font>");
sb.Append("<br>");
sb.Append("<hr>");
}
sb.Append(string.Format("<html><head><meta name='viewport' content='width=device-width,initial-scale=0.8' ><title>Reports{0}</title></head><body><table border= 3><thead>", "详情"));
sb.Append("<th bgcolor='66CCFF'>序号</th><th>标题</th><th>热度</th><th>链接</th>");
sb.Append("</thead>");
for (int i = 0; i < conList.Count(); i++)
{
sb.Append("<tr>");
sb.Append(string.Format("<td bgcolor='66CCFF'>{0}</td>", i + 1));
sb.Append(string.Format("<td> {0}</td>", conList.title));
sb.Append(string.Format("<td> {0}</td>", conList.hotValue));
sb.Append(string.Format("<td> <a href = '{0}' target = '_blank' >链接 </a></td>", conList.url));
sb.Append("</tr>");
}
sb.Append("</table>");
sb.Append("<tbody></body>");
return sb.ToString();
}
}
}
如上代码是爬虫数据代码。数据推送服务代码,暂不贴示。
获取得到数据数据,再借助微信推送消息平台Wxpusher,即可推送信息至微信。并附有数据链接
这个api的热榜内容不是实时的,不知道更新频率是多长时间 kiddhuang 发表于 2023-7-1 21:40
楼主,请问这个有没有做好的软件啊。
微信公众号
使用微信公众号。作为接受信息载体。
我的后台服务将数据推送给微信公众号,只需要客户关注微信公众号即可。
楼主,请问这个有没有做好的软件啊。 不错,能不能推到我的公众号? ebuy177 发表于 2023-7-3 19:22
不错,能不能推到我的公众号?
应该是可以的。 microgly 发表于 2023-7-4 10:46
这个api的热榜内容不是实时的,不知道更新频率是多长时间
是的呢,大概是4个小时更新一次吧 这个有做好的软件吗 liangce_media 发表于 2023-7-19 08:02
这个有做好的软件吗
我做了微信公众号,作为接受信息载体。做好的软件,还需要运行,比较麻烦。
没有微信公众号,好用。 楼主,你的公众号在哪里呢?没看到,怎么对接呢