0

マッコーリー大学のエコー センターから講義を自動的にダウンロードできる ac# プログラムを作成しようとしています。

リンクの例: 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
{
    //
}
4

2 に答える 2

0

ページの HTML をスクレイピングしてリンクを探す必要があります。HtmlAgilityPackなど、プログラムで HTML ドキュメントを読み取るために利用可能な API を試すか、正規表現などを使用して手動で解析することができます。

ファイルへの 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);
                }
        }
于 2012-05-13T14:47:21.377 に答える
0

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

于 2012-05-13T14:48:23.107 に答える