2012-05-13 4 views
0

私はMacquarie UniversityのEcho Centerから講義を自動的にダウンロードできるC#プログラムを作成しようとしています。c#ウェブページのダウンロードリンクを選択する

例リンク:http://echo.mq.edu.au:8080/ess/portal/section/ANTH106_FHFYR_2012

問題は、私はmp3やM4V(すべてで可能な場合)のダウンロードリンクを選択する方法が分からないです。私が思いついた唯一の解決策は、ソースをダウンロードし、リンクのためにそれを解析しようとしています。

誰かが、ブラウザオブジェクト内からダウンロードリンクを選択する方法についてアドバイスしていただけたら、それは素晴らしいでしょう:)そうでなければ、私はソースを使って作業してみます。

Broswer browser = new Broswer(address); 

if (!System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable()) 
{ 
    MessageBox.Show("This machine needs to be connected to the internet to download your lectures.\n\nPlease connect to the internet and try again.", "Network Error", MessageBoxButtons.OK, MessageBoxIcon.Error); 
} 

else 
{ 
    // 
} 

答えて

0

ページのHTMLをスクラップしてリンクを探す必要があります。 HtmlAgilityPackなどのHTMLドキュメントをプログラムで読み取るか、regexなどを使用して手動で解析することができます。

ファイルのURLを取得したら、HttpWebRequestを使用してプログラムでファイルをダウンロードできます。

 var request = WebRequest.Create(" http://echo.mq.edu.au:8080/ess/portal/section/file.pdf"); 
     var response = request.GetResponse(); 

     using (Stream responseStream = response.GetResponseStream()) 
     using (Stream fileStream = File.OpenWrite("c:\lectures\file.pdf")) 
     { 
       var buffer = new byte[4096]; 
       int bytesRead = responseStream.Read(buffer, 0, buffer.Length); 

       while (bytesRead > 0) 
       { 
        fileStream.Write(buffer, 0, bytesRead); 
        bytesRead = responseStream.Read(buffer, 0, buffer.Length); 
       } 
     } 
0

これはWebClientです。 最初にWebClientメソッドDownloadStringを使用してページのHTMLをダウンロードし、ダウンロードのためのリンクを解析し、DowloadDataを使用してファイルを1つずつダウンロードします。

関連する問題