获取qq音乐歌手的收听量(c#)

也是闲着,看到我伦的qq音乐的收听量居然才520万,伤心。就抓下其他歌手的收听量,做个对比。

用到HtmlAgilityPack,Newtonsoft.Json

 1. [代码][C#]代码  

//设置listview的相关属性
listView1.GridLines = true ;
listView1.View = View.Details;
listView1.LabelEdit = true ;
listView1.Sorting = SortOrder.None; //排序,根据第一列
listView1.Columns.Add( "歌手" ,100, HorizontalAlignment.Left); //参数:列名、宽度、对齐方式
listView1.Columns.Add( "收听量" , 300, HorizontalAlignment.Left);
2.  [代码] [C#]代码
WebClient wc = new WebClient();
             wc.Encoding = Encoding.UTF8;
             string html = wc.DownloadString( new Uri( "http://y.qq.com/y/static/singer/index/all_hot_1.html" ));
             HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
             doc.LoadHtml(html);
             string nodexpath = "" ;
             //获取图片排序,10个人
             for ( int i = 1; i < 11; i++)
             {
                 nodexpath = String.Format( "/html/body/div/div/div[2]/div/div[2]/ol/li[{0}]/h5/span[1]/a" , i);
                 HtmlNode base1 = doc.DocumentNode.SelectSingleNode(nodexpath);
                 //获取歌手的id
                 string getstr = base1.Attributes[ "href" ].Value.Substring(21,14);
 
                 WebClient wd = new WebClient();
                 string jsurl = String.Format( "http://s.plcloud.music.qq.com/fcgi-bin/fcg_order_singer_getnum.fcg?singermid={0}&rnd=1420900900825&g_tk=974283127&loginUin=529324801&hostUin=0&format=jsonp&inCharset=GB2312&outCharset=gb2312&notice=0&platform=yqq&jsonpCallback=MusicJsonCallback&needNewCode=0" , getstr);
                 string jsresult = wd.DownloadString( new Uri(jsurl));
                 jsresult = jsresult.Replace( "MusicJsonCallback(" , "" );
                 int n = 0;
                 n = jsresult.LastIndexOf( ")" );
                 jsresult = jsresult.Substring(0, n);
                 JObject jo = (JObject)JsonConvert.DeserializeObject(jsresult);
                 
                 ListViewItem item = new ListViewItem();
                 item.Text = base1.InnerText;
                 item.SubItems.Add(jo[ "num" ].ToString());
                 listView1.Items.AddRange( new ListViewItem[] { item });
             }
             //获取文字排序,40个人
             for ( int i = 1; i < 41; i++)
             {
                 nodexpath = String.Format( "/html/body/div/div/div[2]/div/div[3]/ol/li[{0}]/span[1]/a" , i);
                 HtmlNode base1 = doc.DocumentNode.SelectSingleNode(nodexpath);
                 string getstr = base1.Attributes[ "href" ].Value.Substring(21, 14);
 
                 WebClient wd = new WebClient();
                 string jsurl = String.Format( "http://s.plcloud.music.qq.com/fcgi-bin/fcg_order_singer_getnum.fcg?singermid={0}&rnd=1420900900825&g_tk=974283127&loginUin=529324801&hostUin=0&format=jsonp&inCharset=GB2312&outCharset=gb2312&notice=0&platform=yqq&jsonpCallback=MusicJsonCallback&needNewCode=0" , getstr);
                 string jsresult = wd.DownloadString( new Uri(jsurl));
                 jsresult = jsresult.Replace( "MusicJsonCallback(" , "" );
                 int n = 0;
                 n = jsresult.LastIndexOf( ")" );
                 jsresult = jsresult.Substring(0, n);
                 JObject jo = (JObject)JsonConvert.DeserializeObject(jsresult);
 
                 ListViewItem item = new ListViewItem();
                 item.Text = base1.InnerText;
                 item.SubItems.Add(jo[ "num" ].ToString());
                 listView1.Items.AddRange( new ListViewItem[] { item });

3. [图片] 新建位图图像.bmp  



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值