Jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
Jsoup的大致原理:网站的HTML页面是由HTML标签和要显示的内容组成的,Jsoup的功能就是解析标签,获取内容,并根据标签的类型将内容分类,返回一个document结果集。
以解析某音乐网站为例子:
先将用户输入的关键词和音乐网站的网址进行拼接:
“http://www.xiami.com/search/song?Key=”+“关键词”
public static String KEY_SEARCH_URL = “http://www.xiami.com/search/song?key=“;
然后连接网络,得到网址页面内容后,使用Jsoup进行解析:
document = Jsoup.connect(KEY_SEARCH_URL + key).get();
// jsoup连接最终拼接而成的请求字符串
对比虾米音乐的搜索结果页面可以看出,所有搜索结果是放在一个 名为 track_list的 table中,而id则放在chkbox标签中。
于是先调用结果集合document和element的select()函数获得所有搜索到的歌曲的id,得到一个id数组。
再将音乐网站每一首音乐的页面网址与得到的数组中的id拼接:
“http://www.xiami.com/search/playlist?id=”+”歌曲id”
public static String ID_SEARCH_URL = “http://www.xiami.com/song/playlist/id/“;
得到单曲页面,然后就可以采用和上面相同的方式解析得到歌曲的详细信息啦。