C#三行代码获取优酷首页热门视频集合

C# code
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
namespace Youku
{
/// <summary>
/// 优酷热门视频实体类
/// </summary>
public class YouHotVideo
{
public string Title { get; set; }
public string ImgURI { get; set; }
public string URI { get; set; }
public YouHotVideo(string title, string imgUri, string uri)
{
Title = title;
ImgURI = imgUri;
URI = uri;
}
public static List<YouHotVideo> GetALL()
{
var v = new StreamReader(HttpWebRequest.Create(“http://www.youku.com”) .GetRespons()
.GetResponseStream(), Encoding.UTF8).ReadToEnd() .Replace(“<li “, “❇”).Split(‘❇’)
.Where(x => x.Contains(“v_link”) || x.Contains(“v_thumb”)) .Select(x => x.Substring(x.IndexOf(“http”)))
.Select(x => x.Remove(x.IndexOf(“>”))).ToList();
 
v = v.Select(x => x + v.ElementAt(v.IndexOf(x) + (v.IndexOf(x) == v.Count() – 1 ? 0 : 1))).ToList();
 
return v.Where(x => v.IndexOf(x) % 2 == 0).Where(x => x.Contains(“html”) && x.Contains(“ykimg”))
.Select(x => x.Replace(“&lt;”, “<”).Replace(“&gt;”, “>”).Replace(“&quot;”, “\”") .Replace(“&nbsp;”, ” “))
.ToList().Select(x => new YouHotVideo(x.Remove(x.LastIndexOf(“\”")) .Substring(x.IndexOf(“title”) + 7), x.Remove((x.Contains(“src”) ? x.LastIndexOf(” src”) : x .LastIndexOf(” alt”)) – 1)
.Substring(x.IndexOf(“ykimg”) – 10), x.Remove(x.IndexOf(“html”) + 4))).ToList();
}
}

}

C# code
using System;
namespace ConsoleApplicationDemo
{
class Program
{
static void Main(string[] args)
{
Youku.YouHotVideo.GetALL().ForEach(x => { Console.WriteLine(“标题:” + x.Title);
Console.WriteLine(“图片地址:” + x.ImgURI);
Console.WriteLine(“视频地址:” + x.URI); Console.WriteLine();
});
Console.ReadLine();
}
}
}

 原文地址:http://zhaodehai.com/archives/258。

posted @ 2012-03-30 13:39  Peter.Luo  阅读(651)  评论(0)    收藏  举报