我想使用Java提取数据HTML。我尝试使用Jsoup但到目前为止我无法提取正确的数据。这是我正在尝试提取数据的HTML代码段。
<a href="javascript:;" id="listen_880966" onclick="MP3PREVIEWPLAYER.showHiddePlayer(880966, 'http://mksh.free.fr/' + 'lol/mp3/Paint_It_Black/18_the_black_dahlia_murder_-_paint_it_black_(rolling_stones)-bfhmp3.mp3')" title="Listen Paint it Black The Black Dahlia Murder Great Metal Covers 36" class="button button-s button-1 listen " >
我想要链接(“http://mksh.free.fr/”+“lol / mp3 / Paint_It_Black / 18_the_black_dahlia_murder _ -_ paint_it_black_(rolling_stones)-bfhmp3.mp3”)以及要提取到不同变量中的标题。如果提供示例代码以及答案,那将非常有用。
答案 0 :(得分:4)
您可以使用正则表达式来解析所需的部分。然后你可以使用string.split(delimiter)之类的东西来提取特定的信息。有关string.split()方法的信息,请参阅this link
import java.util.regex.*;
import java.lang.*;
class Main
{
public static void main (String[] args) throws java.lang.Exception
{
String mydata = "<a href=\"javascript:;\" id=\"listen_880966\" onclick=\"MP3PREVIEWPLAYER.showHiddePlayer(880966, 'http://mksh.free.fr/' + 'lol/mp3/Paint_It_Black/18_the_black_dahlia_murder_-_paint_it_black_(rolling_stones)-bfhmp3.mp3')\" title=\"Listen Paint it Black The Black Dahlia Murder Great Metal Covers 36\" class=\"button button-s button-1 listen \" >";
Pattern pattern = Pattern.compile("'http://mksh.free.fr/'\\s.\\s'[\\(\\).A-Za-z0-9/_-]+'");
Pattern title = Pattern.compile("title=\\\"[A-Za-z0-9\\s]+\\\"");
Matcher matcher = pattern.matcher(mydata);
if (matcher.find())
{
System.out.println(matcher.group(0));
}
matcher = title.matcher(mydata);
if(matcher.find())
System.out.println(matcher.group(0));
}
}