Herunterladen einer Audiodatei von einer Website

audio c# download html-agility-pack web

Frage

Ich versuche, eine Audiodatei von einer Website herunterzuladen. Die Audiodatei wird wiedergegeben, sobald Sie auf die kleinen Ohrenschützer klicken und einen Sound zum Abspielen auslösen. Ich habe mich gefragt, ob es möglich ist, den Sound zu finden und herunterzuladen.

Mein Versuch, es zu finden:

public void grabAudio()
    {
        string s = "http://pokedream.com/pokedex/pokemon/bulbasaur";

        HtmlWeb hw = new HtmlWeb();
        HtmlAgilityPack.HtmlDocument doc = hw.Load(s);

        var audio = doc.DocumentNode.SelectNodes("//div[@class='triggers']//img#pokecry-trigger")[0];
        if (doc.DocumentNode.SelectNodes("//div[@class='triggers']//img#pokecry-trigger")[0] != null)
        {
            //I have no idea what im doing :(
        }

    }

Bild von dem, was ich versuche zu bekommen und Link zur Website

Jede und jede Hilfe wird geschätzt :)

Akzeptierte Antwort

Vor allem, wenn Sie keine Berechtigungen vom Autor der Website haben, um dies zu tun, sollten Sie es wahrscheinlich nicht tun.

Nun, wenn Sie die entsprechende Erlaubnis und einen gültigen Grund dafür haben; Sie können die Quelle überprüfen und feststellen, dass dem Bild keine erkennbare Funktion zugeordnet ist. Bilder werden nicht wiedergegeben. Daher wird die Funktionalität wahrscheinlich mit JavaScript gesteuert.

Du beginnst also, durch das JavaScript zu schauen und nach Dingen zu suchen, die mit dem Element von Interesse verbunden sind. Sie sollten diesen Code in pokedex.js :

$('#pokecry-trigger').click(function() {
    $('#pokecry').html('<embed src="/pokedex/images/cries/' + $('#identifier').text() + '.mp3" />');
  });

Wenn Sie auf das Bild klicken, wird ein embed Tag zum Markup hinzugefügt. Wenn Sie sich das src-Tag /pokedex/images/cries/<id>.mp3 , können Sie zu dem Schluss kommen, dass sich die Dateien in /pokedex/images/cries/<id>.mp3 , wo die Site die ID in einem Tag mit der ID #identifier .

Von da an finden Sie einfach die ID für jeden Sound, den Sie benötigen, und laden Sie sie herunter. Dazu laden Sie das HTML-Markup herunter, suchen den Bezeichner DIV und fügen ihn wie oben beschrieben in die URL-Vorlage ein:

string id = "001"; // found in the markup
string url = String.Format("http://pokedream.com/pokedex/images/cries/{0}.mp3", id);
using(var cli = new System.Net.WebClient()) 
{
    var mp3Data = cli.DownloadData(url);
}


Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum