<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    blogjava's web log

    blogjava's web log
    ...

    關于視頻播客flv地址下載

    ?現在視頻博客滿天飛,你是否和我一樣,當看到一個好的視頻節目想把他下載下來,留著慢慢欣賞呢?但有的播客網站比較狡猾,不是一般的人壓根就找不到他的地址。
    ?? 于是我為了方便,想自己寫個找源視頻flv地址,但一個一個網站的分析他的html源代碼來處理,不僅效率不高,人家在服務器一改,你的壓根也就沒有用了。不知道那位高人有什么好的解決辦法?能高效的分析出播客視頻的flv源地址?
    ?
    ? 我說說我的2 個笨方法,也是可以找到他的源地址的。

    1.用這2 個工具 charles(http://www.xk72.com/charles/) 和 (fiddler)http://www.fiddlertool.com/Fiddler/ 一個是java寫的,一個.net寫的。他們都是用來監視http請求的。不管播客網站藏的多深,都能夠找的到。我開始想用net來調用 fiddler類庫,自己再封裝一下,如果成功了,那基本上所以的博客網站的視頻地址都能找到,不用一個一個的去分析他們的html源代碼了~ 但俺比教笨,現在還沒有搞定~

    2:那只能用死辦法。分析html代碼。我寫了一個分析土豆56 地址的。調這個方法。返回 flv地址.
    ? 小提示:(這只是個測試,代碼質量相當的差,你也別太在意 :)免的又有人大罵垃圾了~ )

    ?private?static?readonly?string?tudou?=?"http://{0}.tudou.com/flv/00{1}/{2}/{3}/{4}.flv";
    ?
    private?static?readonly?string?v56="http://{0}/flvdownload/{1}/{2}/{3}@56.com_56flv_{4}.flv";

    ?分析土豆網視頻

    ????????///?<summary>
    ????????
    ///?分析土豆視頻地址
    ????????
    ///?</summary>
    ????????
    ///?<param?name="url">傳入的地址如:http://www.tudou.com/programs/view/rpVqBgWWHmg/</param>
    ????????
    ///?<returns>返回視頻地址?視頻最終地址:http://player0005.tudou.com/flv/003/866/012/3866012.flv</returns>
    ????????public?string?ParseTudou(string?url)
    ????????{
    ????????????
    char[]?temp?=?null;
    ????????????
    string??strId?="";
    ????????????
    if?(url.IndexOf('#')?>?0)
    ????????????{
    ????????????????strId?
    =?url.Substring(url.IndexOf('#'));
    ????????????????temp?
    =?strId.ToCharArray();
    ????????????}
    ????????????
    else
    ????????????{
    ????????????????Normalize(
    ref?url);
    ????????????????
    string?htmlSource?=?GetHtmlSource(url);
    ????????????????strId?
    =?htmlSource.Substring(htmlSource.IndexOf("var?iid=")+8,?7);
    ?????????????????temp?
    =?strId.ToCharArray();
    ????????????}
    ????????????
    return?string.Format(tudou,?"player",?temp[0],?temp[1]?+?temp[2]?+?temp[3],?temp[4]?+?temp[5]?+?temp[6],?strId);
    ????????}

    分析http://www.56.com

    ??????///?<summary>
    ??????
    ///?分析http://www.56.com
    ??????
    ///?</summary>
    ??????
    ///?<param?name="url"></param>
    ??????
    ///?<returns></returns>
    ????????public?string??Parse56(string?url)
    ????????{
    ???????????
    string?htmlSource=GetHtmlSource(url);
    ???????????
    int?start=htmlSource.IndexOf("swfUrl");
    ???????????
    if?(start<=0)
    ???????????{
    ???????????????System.Diagnostics.Debug.Assert(
    false,?"start 0");
    ???????????????
    return?"";
    ???????????}
    ???????????
    int?length=htmlSource.Substring(start).IndexOf(";");
    ???????????
    //array[6]=totaltimes
    ????????????string?swfUrl?=?htmlSource.Substring(start,?length);
    ????????????
    string[]?array=swfUrl.Split(new?char[]{'&'});
    ????????????
    for?(int?i?=?0;?i?<?array.Length;?i++)
    ????????????{
    ????????????????array[i]?
    =?array[i].Substring(array[i].IndexOf('=')?+?1);
    ????????????}
    ????????????StringBuilder?sb?
    =?new?StringBuilder();
    ????????????
    return?string.Format(v56,?array[1],?array[2],?array[3],?array[4],?array[5]);
    ????????}

    公共方法

    ????????///?<summary>
    ????????
    ///?得到html網頁
    ????????
    ///?</summary>
    ????????
    ///?<param?name="strurl"></param>
    ????????
    ///?<returns></returns>
    ????????private??string?GetHtmlSource(string?strurl)
    ????????{
    ????????????
    string?htmlSource="";
    ????????????
    try
    ????????????{
    ????????????????Normalize(
    ref?strurl);
    ????????????????Uri?url?
    =?new?Uri(strurl);
    ????????????????HttpWebRequest?request?
    =?(HttpWebRequest)WebRequest.Create(url);
    ????????????????HttpWebResponse?response?
    =?(HttpWebResponse)request.GetResponse();
    ????????????????Stream?stream?
    =?response.GetResponseStream();
    ????????????????StreamReader?sr?
    =?new?StreamReader(stream);
    ????????????????htmlSource?
    =?sr.ReadToEnd();
    ???????????
    ????????????}
    ????????????
    catch?(Exception?ex)
    ????????????{
    ????????????????System.Diagnostics.Debug.Assert(
    false,?ex.Message);
    ????????????}
    ????????????
    return?htmlSource;
    ????????}
    ????????
    private?void?Normalize(ref?string?url)
    ????????{
    ????????????
    if?(url.StartsWith("http://")?==?false)
    ????????????????url?
    =?"http://"?+?url;
    ????????????
    if?(url.IndexOf("/",?8)?==?-1)
    ????????????????url?
    +=?'/';
    ????????}



    得到了flv地址,寫個類下載就容易多了。看看這個http://www.codeproject.com/useritems/filedownloader.asp
    都給封裝好了。完全可以用的上~
    地址和下載都搞定了。那就還差個 flv播放器了。看看這個 http://www.codeproject.com/cs/media/flashexternalapi.asp
    人家也有教咱們怎么做了。湊合這用用吧~


    //像第2種方法樣一個網站一個網站的去分析~ 我是沒這精力~ 看樣子還是要在 (fiddler)上下點功夫~ 歡迎指點交流~

    posted on 2007-01-11 09:48 record java and net 閱讀(2674) 評論(2)  編輯  收藏 所屬分類: dot net相關

    評論

    # re: 關于視頻播客flv地址下載 2008-03-18 16:36 CODE 小弟

    大哥有沒有優酷的FLV視頻分析源碼。急需要啊。我qq:175241929.
    小弟在這里叩謝了。  回復  更多評論   

    # re: 關于視頻播客flv地址下載 2009-02-27 14:55 huzling

    樓主,fiddler的類庫在使用時,fiddler是不是也要運行著?  回復  更多評論   

    導航

    常用鏈接

    留言簿(44)

    新聞檔案

    2.動態語言

    3.工具箱

    9.文檔教程

    友情鏈接

    搜索

    最新評論

    主站蜘蛛池模板: 国产高清不卡免费视频| 爱情岛论坛亚洲品质自拍视频网站| 日本无卡码免费一区二区三区| a毛片免费在线观看| 亚洲综合色婷婷在线观看| 亚洲一区二区三区深夜天堂| 精品国产亚洲一区二区在线观看| 一本到卡二卡三卡免费高| 亚洲综合国产成人丁香五月激情| 亚洲午夜在线电影| 亚洲色自偷自拍另类小说| 亚洲国产精品无码久久青草| 成年女性特黄午夜视频免费看 | 成人最新午夜免费视频| 67194成手机免费观看| 中文文字幕文字幕亚洲色| 老色鬼久久亚洲AV综合| 亚洲精品中文字幕乱码三区| 免费欧洲毛片A级视频无风险| 女人18毛片特级一级免费视频| 亚洲国产高清人在线| 亚洲电影日韩精品| 免费一级毛片不卡不收费| 在线免费不卡视频| 国产男女性潮高清免费网站| 成人毛片18女人毛片免费视频未 | 亚洲精品在线免费观看| 国产免费AV片无码永久免费| 成年人在线免费看视频| 女人毛片a级大学毛片免费| 毛片免费在线观看网址| 夜夜爽免费888视频| 国内外成人免费视频| 精品剧情v国产在免费线观看| 精品国产免费观看| 免费看一级做a爰片久久| 免费在线观看黄网| 国产亚洲精品AA片在线观看不加载| 国产精品亚洲美女久久久 | 久久精品国产亚洲| 亚洲视频在线一区二区三区|