제가하려는 것은 웹 사이트에서 오디오 파일을 다운로드하는 것입니다. 작은 귀 덮개를 클릭하면 오디오 파일이 재생되고 재생할 소리가 나게됩니다. 소리를 찾아서 다운로드 할 수 있는지 궁금합니다.
그것을 찾으려는 나의 시도 :
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 :(
}
}
모든 도움이 감사합니다 :)
먼저 사이트 작성자가 권한을 갖고 있지 않다면 아마 그렇게하지 말아야 할 것입니다.
자, 당신 이 적절한 허가와 이것을 할 타당한 이유가 있다면; 소스를 검사하여 이미지에 첨부 된 기능이 없음을 볼 수 있으며 이미지가 사운드를 재생하지 못합니다. 따라서이 기능은 JavaScript로 제어 될 가능성이 큽니다.
따라서 자바 스크립트를 살펴보고 관심있는 요소에 첨부 된 항목을 찾으십시오. pokedex.js
에서이 코드를 pokedex.js
.
$('#pokecry-trigger').click(function() {
$('#pokecry').html('<embed src="/pokedex/images/cries/' + $('#identifier').text() + '.mp3" />');
});
따라서 이미지를 클릭하면 embed
태그가 마크 업에 추가됩니다. src 태그를 보면, 파일이 /pokedex/images/cries/<id>.mp3
에 있고, 사이트가 ID #identifier
가있는 태그에 ID를 출력한다는 결론을 내릴 수 있습니다.
거기에서 필요한 사운드의 ID를 찾아 다운로드하십시오. HTML 마크 업을 다운로드하고, 식별자 DIV를 찾아서 위에 나온 URL 템플리트에 삽입하면됩니다.
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);
}