2011-12-24 65 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 2011-12-24 23:08:06

+0

你真的需要發佈所有的HTML只是爲了問這個問題嗎?你能不能創建一個仍然存在相同問題的小例子? – 2011-12-24 23:11:46

回答

1

如果您經常這樣做,您可以使用第三方(開源)庫HtmlAgilityPack並使用XPath(爲此有許多資源在線)獲取您的價值。

一旦我創建HtmlDocument(通過下載使用HtmlWeb.Load頁)我會使用以下方法來獲取URL:

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

+0

你有鏈接到HtmlAgilityPack?此外,如果我使用它,用戶是否也必須下載它? – Andrew 2011-12-25 03:14:48

+0

http://htmlagilitypack.codeplex.com/。您可以將它用作DLL,所以是的,用戶需要它(但您可以將其包含在安裝文件中或使用ILMerge(http://www.microsoft.com/download/en/details.aspx?id=) 17630 - 雖然我對這個選項沒有經驗),你也可以把這個DLL放在與你的可執行文件相同的目錄下。 – 2011-12-25 03:36:57

0

如果只有唯一的事情是文本,你能做到這方式使用jQuery:

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

希望這有助於

0

你可以得到使用HTML,帕西它做ng,如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,你可以使用DownloadString方法從WebClient類獲取HTML。

還有更簡單的方法來使用API​​。

+0

如何使用其他方式API? – Andrew 2011-12-25 05:20:17