[C#源代码]百度网盘地址批量转换工具
源代碼地址 : ? ? ? ??http://download.csdn.net/detail/witch_soya/5185926
效果如圖
截止今日2013年3月27日10:13:48 還是可以使用的。但是不保證您在看到這篇文章的時候百度已經改變了文檔結構。吼吼。那就不要在樓主的帖子底下NC的罵LZSB了,群眾的眼睛是雪亮滴~~~
幾個月前用爬蟲將月之門游戲音樂在線試聽的地址爬出來了,發現都存在于百度網盤中,詳見?http://blog.csdn.net/witch_soya/article/details/8486213
? ? ?
? ? ? ? ?用了一些辦法,沒能將文件從百度網盤中批量提出來。后來又過了一段時間,看了一眼百度網盤網頁代碼,發現挺簡單,是我想復雜了。于是寫了這個百度網盤文件地址批量轉換工具。也沒什么牛逼的技術,發上來只希望能對有需要的人有一些幫助。
? ? ? ?百度網盤的地址是類似于這樣的
? ?http://pan.baidu.com/share/link?shareid=112684&uk=455690558
? ? ? ? ? 轉換完畢得到的地址可以直接用迅雷去下載的是這樣。
http://www.baidupcs.com/file/8d29f2f27f5939fabc7260e23f4739dd?fid=455690558-250528-2069072566&time=1364348891&sign=FDTA-DCb740ccc5511e5e8fedcff06b081203-QEMyAofAasbPaHUkB96JtiPppWQ%3D&expires=8h&sh=1&response-cache-control=private
? ? ? ? 因為我只是為了下載月之門游戲音樂在百度網盤中的地址,所以沒有試過其他的文件地址對不對。但是既然源碼都放出來了。大家就自己調試一下了。
? ? ? ?流程起始很簡單,就是模擬瀏覽器去訪問百度盤的地址,然后提取其中的實際地址,核心函數就是這個
?
//百度盤地址 http://pan.baidu.com/share/link?shareid=112694&uk=455690558 private string ConvertBaiduPan_Thunder(string strBaiduPan){if (strBaiduPan == null){return null;}string strThunder = null;//訪問百度盤地址string strBaiduPanWebPage = MyHttp.GetHtml(strBaiduPan);if (strBaiduPanWebPage == ""){MessageBox.Show("訪問地址失敗!"+ strBaiduPan);goto End;}//取出 <a class="dbtn cancel b-fr" href="http://www.baidupcs.com/file/8d29f2f27f5939fabc7260e23f4739dd?fid=455690558-250528-2069072566&time=1358472203&sign=FDTA-DCb740ccc5511e5e8fedcff06b081203-E0ZjQ1awurzhDkjhV5c%2BtTN05nA%3D&expires=8h&sh=1&response-cache-control=private" id="downFileButtom"><b>下載(2.44M)</b></a>//匹配正則表達式 <a class="dbtn cancel b-fr" href="http://.*?">*.id="downFileButtom"><b>Regex r = new Regex("<a class=\"dbtn cancel b-fr\" href=\"http://.*?\">*.id=\"downFileButtom\"><b>");//開始匹配Match m = r.Match(strBaiduPanWebPage);string strLink = null;while (m.Success){strLink = m.Groups[0].Value;//提取出其中href的值 http://www.baidupcs.com/file/8d29f2f27f5939fabc7260e23f4739dd?fid=455690558-250528-2069072566&time=1358470090&sign=FDTA-DCb740ccc5511e5e8fedcff06b081203-OiOC3pLc236790OikWTlSsTHWjc%3D&expires=8h&sh=1&response-cache-control=private" id="downFileButtom"Regex r2 = new Regex("http.*\"");//開始匹配Match m2 = r2.Match(strLink);while (m2.Success){strLink = m2.Groups[0].Value;strLink = strLink.Replace("&", "&");// 包含雙引號 " id="downFileButtom"strLink = strLink.Replace("\"","");strLink = strLink.Replace("id=downFileButtom", "");m2 = m2.NextMatch();}//從上一個匹配結束的位置開始下一個匹配m = m.NextMatch();strThunder = strLink;} End:return strThunder;}? ? ? ? 以上這個函數就是取出百度網盤中文件地址的函數了。很簡單的網頁抓取和文字匹配是吧。 ?如果有什么不明白的,自己看源碼,或者給我留言。作為小白,樂意和眾多菜鳥交流。
/*************************************/
witch_soya 2013年3月27日10:03:25
/*************************************/
總結
以上是生活随笔為你收集整理的[C#源代码]百度网盘地址批量转换工具的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HTML5+CSS期末大作业:个人主页介
- 下一篇: 用C#编写三角形面积计算程序(附源码)