1

我正在编写一个程序,该程序会自动启动网络浏览器以播放所选歌曲,因此为了做到这一点,我的程序正在使用 httwebrequest/response

  • 获取包含音频源页面链接的网页的源代码
  • 搜索该网站源代码并找到音频源网站
  • 打开指定网页的chrome,就可以听歌了。

我正在使用 project.com 作为我的音频源,并且我不打算使用其他网站,例如 youtube

我遇到的问题是,虽然我在 chrome 中加载初始网站时可以看到指向音频源网站的链接,但页面源不包含它。例如,这个网站有一个指向音频源的链接http://pl.st/s/1709472017,你可以在初始网站上实际看到,但是当我使用 chrome 查看页面源时,我找不到这个音频源链接。

如果我右键单击音频源文本框并选择检查元素,那么我可以看到:

<input class="copy-song-link" 
   type="textbox" 
   value="http://pl.st/s/1709472017" 
   name="url" 
   onclick="javascript:select();" title="Copy and share this song URL">

所以这个链接显然位于某处。我的问题是这些

  • 为什么/如何这个链接不在源页面中,但是当我通过 chrome 查看网站时我可以看到
  • chrome的“检查元素”怎么能找到这个url,而页面源不包含它。

  • 检查元素与查看源代码有何不同?

我对http通信很陌生,所以任何帮助都将不胜感激。

4

1 回答 1

2

对于这种情况,我通常使用插件 Firebug for Firefox。它将允许您使用“Net”选项卡来检查页面加载时发生的所有后续请求(通常是 Ajax)。

在您的情况下,似乎 Ajax 请求正在收集用于生成您想要提取的链接的数据。此数据以 JSON 格式显示,JavaScript 可能会在客户端从 JSON 生成链接。看看这个链接 http://www3.playlist.com/async/searchbeta/tracks?searchfor=r%20u%20mine

用于生成链接的 linkid 位于响应的第一部分 ...PPL.search.trackdata = [{"linkid":1709472017...

于 2012-05-29T05:37:16.863 回答