2011-01-09 302 views

回答

4

最好的方法是使用HTML解析器(如HTML Agility Pack)解析HTML,然後查詢它。

它允許您使用XPath查詢HTML,非常類似於XmlDocument

1

您應該聯繫Mediafire,看他們是否提供API。

我猜測他們沒有API(至少不能公開訪問),這將導致你需要擊敗CAPTCHA和其他反機器人技術。

試圖解決直接下載鏈接可能違反他們的服務條款,並可能事實上是非法的,具體取決於您所在的法律。

1

我創建了一個功能,已經爲我所用,那就是:

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功能是不僅僅是這個其他情況下非常有用。這是爲了使Mediafire功能正常工作所必需的:

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; 
    } 
+0

大聲笑,我沒有意識到完美的語法是發佈解決方案時如此重要的一個因素。 :P – user3596865 2014-05-04 00:27:35