用C#下载蓝奏云网盘里的文件,我是小白,请多多包涵,我会把我所有分给你

老杂鱼 2017-07-01 07:14:34
下面这个是要下载的文件页面
https://pan.lanzou.com/1188751

下面这个是下载的连接地址(页面上有电信下载和网通下载选项,我复制链接地址得到的这个网址),这样的地址只能在浏览器里下载,没办法在C#程序里下载
http://vip.d0.baidupan.com/file/?VDJVa1loDj8IAVZuAjdcMAc4ADgAFAVoB2UAbwAIWz8EZwE7CTsAegklAj0CJlZxVWkAbFRnUDcCWlo1UGhTb1RlVTNZPA5iCGlWNQJnXHsHOwB2AGIFMQc2ADYAZVtuBD0BYglsAHIJLwIkAmtWZVU/ADRUPFB9AjVaaVAjU2BUY1UtWTEObQhuVjYCYlw/Bz8ANwA8BWIHYwAzAG5bbQQ9AWAJZAAxCWoCZQJlVjFVaQBgVDNQYgJgWj9QbVM2VGJVMVkqDiAIN1ZwAnBcKQc0AGgAOgVhBz0ANwBoW2MEPAFjCWAAYQlqAmwCZg==

下面这个是文件下载时的真实地址(我是在浏览器里下载,然后得到下载网址,要是能有办法用C#先后台调用浏览器,得到这个真实地址也就好了,之后就可以用这个地址用简单的C#代码直接下载了,可我只会手动用浏览器下载得到下载地址,不会用C#代码来获取 )
https://open01s.baidupan.com/20170627142333bb/2017/05/27/57064bb2cec527960e513ffe80ecad63.zip?st=1izkaJVkr96Gs-F3iRiRKA&q=KoeiTecmo.zip&e=1498546613&ip=117.93.80.240&f=1188751
...全文
839 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
老杂鱼 2017-07-08
  • 打赏
  • 举报
回复
引用 5 楼 StratosBlue 的回复:

            HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("http://vip.d0.baidupan.com/file/?A2VbZQw9VWQBCFRsVGEBbQY5VW1VQQZrCmhWOVVdVDBSMVZsWWsPdQUpUG8KLlZxAz8GagAzBGNSClQ7ADhVaQMyWz0MaVU5AWBUN1QxASYGOlUjVTcGMgo7VmBVMFRhUmtWNVk8D30FI1B2CmNWZQNpBjIAaAQpUmVUZwBzVWYDNFsjDGRVNgFnVDRUNAFiBj5VYlVpBmEKblZlVTtUYlJrVjdZNA8+BWZQNwptVjEDPwZmAGcENlIwVDEAPVUwAzVbPwx/VXsBPlRyVCYBdAY1VT1VbwZiCjBWYVU9VGxSa1YxWTIPagVlUDAKbQ==");
            req.Headers["Accept-Language"] = "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3";
            req.AllowAutoRedirect = false;
            var resp = req.GetResponse();
            var link = resp.Headers["Location"];
感谢StratosBlue
老杂鱼 2017-07-03
  • 打赏
  • 举报
回复
引用 2 楼 StratosBlue 的回复:
[quote=引用 1 楼 StratosBlue 的回复:]
正常操作获取到下载地址的步骤是这样的

你可以在第一个请求中找到这个,这个是第二个请求的地址

不过实际的下载地址是在第三个请求中,不过第三个请求并没有Cookie验证什么的,只是有个第二个地址的referer,可以试试不访问第二个地址,直接设置referer访问第三个地址,然后就能拿到下载地址了


实现步骤理论上就是这样的

搞忘了,第三个请求获取到结果地址后,访问这个地址,它会重定向到真实的下载地址[/quote]
你所说的这些我之前在其它帖里有大神给出C#代码给我了,到最后问题还是停留在得到这个网址我不会用C#代码像浏览器那样重定向网址
Anonymous477 2017-07-03
  • 打赏
  • 举报
回复
引用 1 楼 StratosBlue 的回复:
正常操作获取到下载地址的步骤是这样的 你可以在第一个请求中找到这个,这个是第二个请求的地址 不过实际的下载地址是在第三个请求中,不过第三个请求并没有Cookie验证什么的,只是有个第二个地址的referer,可以试试不访问第二个地址,直接设置referer访问第三个地址,然后就能拿到下载地址了 实现步骤理论上就是这样的
搞忘了,第三个请求获取到结果地址后,访问这个地址,它会重定向到真实的下载地址
Anonymous477 2017-07-03
  • 打赏
  • 举报
回复
正常操作获取到下载地址的步骤是这样的

你可以在第一个请求中找到这个,这个是第二个请求的地址

不过实际的下载地址是在第三个请求中,不过第三个请求并没有Cookie验证什么的,只是有个第二个地址的referer,可以试试不访问第二个地址,直接设置referer访问第三个地址,然后就能拿到下载地址了


实现步骤理论上就是这样的
crystal_lz 2017-07-03
  • 打赏
  • 举报
回复
所以说你的各种http头加上了么?我之所以用WebClient给你演示那是因为我不想写那么多代码 然而我的WebClient里面什么都没有加 Cookie?referer?UA等。。。在研究“数据采集”前 我建议你先把http协议搞清楚了
Anonymous477 2017-07-03
  • 打赏
  • 举报
回复

            HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("http://vip.d0.baidupan.com/file/?A2VbZQw9VWQBCFRsVGEBbQY5VW1VQQZrCmhWOVVdVDBSMVZsWWsPdQUpUG8KLlZxAz8GagAzBGNSClQ7ADhVaQMyWz0MaVU5AWBUN1QxASYGOlUjVTcGMgo7VmBVMFRhUmtWNVk8D30FI1B2CmNWZQNpBjIAaAQpUmVUZwBzVWYDNFsjDGRVNgFnVDRUNAFiBj5VYlVpBmEKblZlVTtUYlJrVjdZNA8+BWZQNwptVjEDPwZmAGcENlIwVDEAPVUwAzVbPwx/VXsBPlRyVCYBdAY1VT1VbwZiCjBWYVU9VGxSa1YxWTIPagVlUDAKbQ==");
            req.Headers["Accept-Language"] = "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3";
            req.AllowAutoRedirect = false;
            var resp = req.GetResponse();
            var link = resp.Headers["Location"];
bloodish 2017-07-03
  • 打赏
  • 举报
回复
用HttpWebRequest/HttpWebResponse来做下载 HttpWebRequest可以设置是否允许重定向(AllowAutoRedirect)和重定向的次数(MaximumAutomaticRedirections) 如何使用和下载,请参考 download-stream-file-from-url-asp-net

110,502

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧