C#控制台程序取得INSOYA视频区的视频的真实URL,视频标题,发布时间集合。
2015-09-27 21:05
411 查看
准备工作
起因是因为这个网站:http://i.youku.com/kmsfan 这个是一个叫做冒险岛的游戏的资讯论坛,以前我经常在里面传视频,现在我不玩这个游戏了,但是很多玩家还是经常到我的网站里面去看视频,所以我觉得有点不好意思,我觉得开发出一款自动上传下载的工具比什么都好,也不耽误我时间。需要准备一些插件,这些插件都可以从Nuget里面找到,比如Newtonsoft.Json啊HtmlAgilityPack ,不过目前为止也只用到了这些东西。还有我没有做youtube视频的下载,我只做了Daum tv的视频解析,因为Insoya视频区大部分都是上传到Daum Tv 的视频。Insoya视频区结构解析
我先不放代码,大家先要对网站的文件解析有个大概的了解才行吧?我的想法就是:解析当天的视频。因为Insoya是一个韩国网站,所以韩文什么的思密达什么的就不要再吐槽了。这是视频区的地址:http://www.insoya.com/bbs/zboard.php?id=uccpublic static IList<VideoModel> GrabVideoInfo() { int max=getMaxIdOfVideo(); int staticMax = max; IList<VideoModel> models = new List<VideoModel>(); do { VideoModel model=new VideoModel(); HtmlWeb innerDocWeb = new HtmlWeb(); HtmlDocument innerDoc = innerDocWeb.Load(insoyaUcc + max); //标题 foreach (HtmlNode title in innerDoc.DocumentNode.Descendants("a").Where(d => d.Attributes.Contains("name") && d.Attributes["name"].Value.Contains("pv9"))) { model.Title = title.InnerText; break; } //日期 foreach (HtmlNode title in innerDoc.DocumentNode.Descendants("span").Where(d => d.Attributes.Contains("class") && d.Attributes["class"].Value=="eng")) { DateTime date; DateTime.TryParse(title.InnerText,out date); if (date != null) { model.PubTime = date; break; } } //视频地址 foreach (HtmlNode title in innerDoc.DocumentNode.Descendants("iframe").Where(d => d.Attributes.Contains("title") && d.Attributes["title"].Value.Contains("maplestory_ucc"))) { string oldUrl = title.Attributes["src"].Value; string newUrl = GetDownloadUrls(oldUrl); model.VideoUrl = newUrl; break; } model.VideoId = max; models.Add(model); Console.WriteLine("ID:"+max + " has accomplish grabbed!"); --max; } while (max >= staticMax - 20); return models; }
GrabVideoInfo(获取视频模型)
好了,到此为止我们就可以抓取到视频模型了。
尚未完成的工作
当然了,才完成了30%,还要自动上传视频到优酷,还有要把韩文翻译成最合适的中文,如果我做出来了,会和大家分享的,首先是上传到优酷。有兴趣的同好可以看看优酷开放平台。相关文章推荐
- 准确得到时间格式的方法,C#里面很多的种方法试过后都有问题,只能按此方法没有问题
- c# ThreadPoold使用心得
- 《叩响C#之门》RichTextBox修改字体大小的研究
- C# WindowsForm 员工管理系统四【发放工资】
- c#中的Rank属性和GetUpperBound,GetLowerBound(0)方法
- C# 动态数组
- 匹夫细说C#:可以为null的值类型,详解可空值类型
- C#----委托和事件(一)
- C#读写INI文件的方法
- 关于C#中的变量的初始化问题浅谈
- c# string转为DateTime
- C# 子窗口修改主窗口的控件
- Automatically Grab Images From a Website With C#
- [C#]简单离线注册码生成与验证
- 如何创建 C# 控制台应用程序
- c#中浅拷贝和深拷贝的理解
- C#中RichTextBox中英文混输-等宽字体
- 程序集与反射技术(C#)
- 从c#数组求和说起
- 使用Async和Await进行异步编程(C#版 适用于VS2015)