如何从页面源中省略某些内容

时间:2012-05-29 05:01:05

标签: c# http httpwebrequest httpwebresponse

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

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

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

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

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

<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的“inspect element”找到此url,而页面源不包含它。

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

我对http通信很陌生,所以任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:2)

我通常在这种情况下使用Firefox的插件Firebug。它允许您使用"Net" tab来检查页面加载时发生的所有后续请求(通常是Ajax)。

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

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