从Mediafire.com获取直接下载链接和文件站点

例如,我有链接http://www.mediafire.com/?dr7j413wv5dc3n7t

什么是获得direkt下载链接的最佳方式,即

http://download656.mediafire.com/8qgjk46xjcag/dr7j413wv5dc3n7/Test.rar

和C#中的文件大小(347.31 KB)?

最好的方法是使用HTML解析器(如HTML Agility Pack)来解析HTML然后查询它。

它允许您使用XPath查询HTML,非常类似于XmlDocument

您应该联系Mediafire,看看他们是否提供了API。

我猜他们没有API(至少,不能公开访问),这将导致你需要击败CAPTCHAs和其他反僵尸技术。

尝试解决直接下载链接可能违反其服务条款,并且根据您所在的法律,可能实际上是非法的。

我已经为自己创建了一个函数,这里是:

  public string Mediafire(string download) { HttpWebRequest req; HttpWebResponse res; string str = ""; req = (HttpWebRequest)WebRequest.Create(download); res = (HttpWebResponse)req.GetResponse(); str = new StreamReader(res.GetResponseStream()).ReadToEnd(); int indexurl = str.IndexOf("http://download"); int indexend = GetNextIndexOf('"', str, indexurl); string direct = str.Substring(indexurl, indexend - indexurl); return direct; } 

然后,GetNextIndexOf函数对除此之外的其他情况有用。 这是Mediafirefunction工作所必需的:

  private int GetNextIndexOf(char c, string source, int start) { if(start < 0 || start > source.Length - 1) { throw new ArgumentOutOfRangeException(); } for(int i = start; i < source.Length; i++) { if(source[i] == c) { return i; } } return -1; }