我想在播放器中显示歌曲的歌词。我曾经使用过lyricsplugin.com,因为它有很多英语和俄语的歌词,但最近他们已经将他们的网站从静态页面改为ajax驱动的页面。搜索歌词遵循以下模式:
http://www.lyricsplugin.com/winamp03/plugin/?artist=Linkin%20Park&title=Numb
它显示一个空页面,这在body onload中:
javascript:getContent('Linkin%20Park', 'Numb', '1281528101', '5e22e4e3979026a9af59ee16ff82fe1f')
而getContent
看起来像这样:
function getContent(artist, title, time, check) {
xmlHttp = GetXmlHttpObject();
if(xmlHttp == null)
{
return;
}
var url = "content.php?artist=" + artist + "&title=" + title + "&time=" + time + "&check=" + check;
xmlHttp.onreadystatechange = stateChanged;
xmlHttp.open("GET", url, true);
xmlHttp.send(null);
}
stateChanged()
然后将响应放入页面中的相应div。
所以我想我可以下载页面并构建一个DOM树,因为它是XHTML。如何使用内置的rhino引擎执行javascript并最好覆盖stateChanged()
函数?我似乎无法直接调用content.php
脚本。
除lyrics.wikia.com外,没有其他资源有那么多歌词(特别是俄语),但它们不允许屏幕抓取。
更新
lyricsplugin似乎正在使用justsomelyrics.com并且有一个谷歌自定义搜索框。我如何从java访问它?
答案 0 :(得分:0)
最简单的是SWT Browser component。只需致电setURL(String)
,它就会显示网页。这为您提供了一个完整的浏览器,其中包含Javascript和所有内容。