新浪Flash下载器 [HttpWebRequest | 新浪视频]

前言

     哈哈,好久不写小工具了,去年写的笨笨图片批量下载器 V0.3 beta平时还是帮了一些忙的,今天的小工具是 新浪Flash下载器 。可以直接下载swf结尾的文件,如果下载新浪视频文件,你需要右键源代码找到这个flash的伪链接,如http://music.sina.com.cn/yueku/flashPlayer.swf?vid=6851105,然后把这里连接复制到软件输入框点下载就可以了。

运行环境

     1.     Microsoft .NET Framework 2.0  你可以从文章的下载部分找到下载的链接。

参考文章

     1.     下载新浪flash方法

     2.     c# 读/写文件(各种格式)

正文

     1.     截图

                  

     2.     使用步骤

          2.1     右键含有新浪视频的网页打开源代码,比如http://www.dapenti.com/blog/more.asp?name=xilei&id=18466s。如果被屏蔽可以考虑换Opera和Chrome浏览器。

          2.2     搜索关键字.swf,找到embed标签的src属性,复制连接到软件输入框内。

          2.3     点击开始下载。由于有些文件比较大,下载时间可能超过30秒,但是没有关系,这里采用的异步,你只需要最小化或者点击右上角关闭缩小到右下角再去干自己的事情就行了:)

          2.4     退出软件请点击红色感叹号的图标按钮!

          2.5     2009-4-25补充,如果是类似于http://you.video.vnet.cn/b/11689006-1234029735.html这样的链接,只有后面部分11689006-1234029735.html不同的话,可以直接用http://you.video.vnet.cn/swf/player.swf?vid=11689006-1234029735来下载,即“vid=”前面的链接是一样的,而vid后面的值就是页面的伪名称,即这里的 11689006-1234029735。

     3.     部分代码

               看过我图片下载器的朋友对这部分代码应该还是比较熟悉了,下载有附带源码。

               代码片段1

                //异步下载文件
                HttpWebRequest hwr = WebRequest.Create(nUrl) as HttpWebRequest;
                hwr.AllowWriteStreamBuffering 
= false;
                hwr.AllowAutoRedirect 
= true;
                
//hwr.ReadWriteTimeout = 5 * 1000; //默认超时5分钟
                hwr.BeginGetResponse(new AsyncCallback(AsyncDownLoadResult), hwr);

               代码片段2

            WebRequest request = (WebRequest)asyncResult.AsyncState;
            
string url = request.RequestUri.ToString();
            
try
            {

                WebResponse response 
= request.EndGetResponse(asyncResult);

                
if (response.ContentLength > 0)
                {
                    
if (!Directory.Exists(tbSavePath.Text.Trim()))
                        Directory.CreateDirectory(tbSavePath.Text.Trim());

                    
using (Stream stream = response.GetResponseStream())
                    {
                        
using (FileStream fs = File.Create(Path.Combine(tbSavePath.Text.Trim(), Path.GetFileName(url))))
                        {
                            
byte[] bytes = new byte[10240];
                            
int n = 1;
                            
while (n > 0)
                            {
                                n 
= stream.Read(bytes, 010240);
                                fs.Write(bytes, 
0, n);
                            }
                        }
                    }
                }
            }
            
catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

下载

     1.     新浪Flash下载器    可直接运行的exe文件,需要.Net 2.0。

     2.     Microsoft .NET Framework 2.0  运行环境。

     3.     Src 完整的源代码。


补充

     1.     转载至少保留 博客园 出处!!

     2.     有关注我视频监控系列的朋友不要怪我不务正业哈,沮丧的是播放器的第三部分转换AVI文件至今未能完成,所以打算再加2篇总结就结束这系列文章了。如果公司产品卖得好,我想我能够花更多的时间来实现更多的功能,当然该系列的续集也会陆续出来,感谢大家关注: )

结束

     功能简单,但是自己来写还是蛮开心的,准备下一版加入直接给出一个页面地址就可以下载这个页面中的一个或多个链接。欢迎大家拍砖和建议: )

原文地址:https://www.cnblogs.com/over140/p/1428114.html