2011-12-24 4 views
1
<div id="song_html" class="show1"> 
    <div class="left"> 
     <!-- info mp3 here --> 
     3.88 mb 
    </div> 
    <div id="right_song"> 
     <div style="font-size: 15px;"> 
      <b>Beatles - Hey Jude mp3</b></div> 
     <div style="clear: both;"> 
     </div> 
     <div style="float: left;"> 
      <div style="float: left; height: 27px; font-size: 13px; padding-top: 2px;"> 
       <div style="float: left; width: 27px; text-align: center;"> 
        <a href="javascript:void(0)" onclick="showPlayer(161498180, 'b7f231500894c321c0a7739802edff16965eb111', 'beatles', 'hey+jude')" 
         rel="nofollow" id="lk161498180" class="play_now">Play</a></div> 
       <div style="margin-left: 8px; float: left;"> 
        <a href="http://dc109.4shared.com/img/1038702204/8ffe01b/dlink__2Fdownload_2FxAdbDSb4_3Ftsid_3D20111224-60034- 
        aa918a50/preview.mp3" rel="nofollow" target="_blank" style="color: green;">Download</a></div> 
       <div style="margin-left: 8px; float: left;"> 
        <a href="javascript:void(0)" onclick="showEmbed(161498180, 
        'b7f231500894c321c0a7739802edff16965eb111')" rel="nofollow" id="em161498180" class="embed"> 
         Embed</a></div> 
       <div style="margin-left: 8px; float: left;"> 
        <a href="http://www.ringtonematcher.com/go/?sid=WDLL&artist=beatles&song=hey+jude" 
         rel="nofollow" target="_blank" style="color: red;" title="Send Beatles - Hey Jude Ringtone to your Cell"> 
         Send Ringtone</a></div> 
       <div style="clear: both;"> 
       </div> 
      </div> 
      <div id="player161498180" style="float: left; margin-left: 10px;" class="player"> 
      </div> 
     </div> 
     <div style="clear: both;"> 
     </div> 
    </div> 
    <div style="clear: both;"> 
    </div> 
</div> 

링크 'http://dc109.4shared.com/img/1038702204/8ffe01b/dlink__2Fdownload_2FxAdbDSb4_3Ftsid_3D20111224-60034-aa918a50/preview.mp3'을 검색하는 방법을 알고 있습니다.버튼에서 URL을 가져 오는 방법은 무엇입니까? 내가 사랑하는 것

나는 다른 포럼과 사람들을 여러 번 둘러 보았지만 아직도 이해할 수없고 작동하지 않습니다.

다른 클래스가 있으므로 클래스 "show1"을 통해 가져와야하는 필수 항목입니다.

+0

Javascript/jQuery를 사용하여 검색하고 싶습니까? – Virendra

+0

정말로이 질문을하기 위해 HTML을 모두 게시해야합니까? 여전히 동일한 문제가있는 작은 예제를 만들 수 없었습니까? –

답변

1

이 작업을 자주 수행하는 경우 타사 (오픈 소스) 라이브러리 인 HtmlAgilityPack을 사용하여 XPath (온라인 리소스가 많음)를 사용하여 가치를 얻을 수 있습니다.

내가 생성되면 HtmlDocument 나는이 URL 얻기 위해 다음 사용하는 것이 (HtmlWeb.Load를 사용하여 페이지 다운로드하여) : 유일하게 독특한 점은 텍스트 인 경우

String theLink = myDoc.DocumentNode.SelectSingleNode("//div[@class='show1']//a[.='Download']").Attributes["href"].Value;

+0

HtmlAgilityPack에 대한 링크가 있습니까? 또한 내가 그것을 사용한다면, 사용자는 그것을 또한 다운로드해야만 할 것인가? – Andrew

+0

http://htmlagilitypack.codeplex.com/. DLL로 사용하기 때문에 사용자가 필요합니다 (그러나 설치 파일에 포함 시키거나 ILMerge를 사용할 수 있습니다 (http://www.microsoft.com/download/en/details.aspx?id= 17630 -이 옵션에 대한 경험은 없지만) 실행 파일과 동일한 디렉토리에 DLL을 넣을 수도 있습니다. –

0

을, 당신이 그것을 할 수 있습니다 방법 jQuery를 사용하여 :

var href = $('a:text("Download")').attr('href'); 

희망이

0

당신이 html로 - 파르을 사용하여 얻을 할 수 있습니다 예 : HtmlAgilityPack.

간단한 예 :

var doc = new HtmlAgilityPack.HtmlDocument(); 
doc.LoadHtml(html); 
var nodes = doc.DocumentNode.SelectNodes("//a[.='Download']"); 
var link = nodes[0].Attributes["href"].Value; 

난 당신이 4shared 페이지에서이 HTML을 받고 있다고 생각, 당신은 HTML을 얻기위한 WebClient 클래스에서 DownloadString 방법을 사용할 수 있습니다.

더 쉬운 방법은 API를 사용하는 것입니다.

+0

다른 방법으로 API를 사용하는 방법은 무엇입니까? – Andrew

관련 문제