使用java从HTML中提取数据

时间:2013-06-28 08:27:56

标签: java html-parsing jsoup

我想使用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”)以及要提取到不同变量中的标题。如果提供示例代码以及答案,那将非常有用。

1 个答案:

答案 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));
    }
}

Ideone