1. jsoup概念
jsoup是一款Java的HTML解析器,可直接解析某個URL地址、HTML文本內容。java
2. jsoup的主要功能
1. 從一個URL,文件或字符串中解析HTML;node
2. 使用DOM或CSS選擇器來查找、取出數據;maven
3. 可操做HTML元素、屬性、文本;ide
注:jsoup是基於MIT協議發佈的,可放心使用於商業項目。ui
3. maven依賴
<dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.7.2</version> </dependency> |
4. 代碼實現
4.1 目標代碼
<ul class="audioList fontYaHei"> <li> <div class="divider"></div> <a class="clearfix js-play-data audio-list-item" href="/250837/2600807142873448454" title="是何時開始,咱們互相再也不聯繫(文/小隱兒)" data-band="250837" data-rid="16443181897825536" data-uid="4830397" data-user-name="姚小明『據說』無言" data-radio-name="朝九·晚五" data-title="是何時開始,咱們互相再也不聯繫(文/小隱兒)" data-duration="604" data-url="http://cdn5.lizhi.fm/audio/2017/05/09/2600807142873448454_hd.mp3" data-id="2600807142873448454" data-cover="http://cdnimg103.lizhi.fm/radio_cover/2017/03/05/2588752303353985028.jpg"> <i class="leftPlayBtn js-play-btn" style="display:block;" title="" onclick="play(this);return false;"></i> </a> </li> </ul>this <ul class="audioList fontYaHei"> <li> <div class="divider"></div> <a class="clearfix js-play-data audio-list-item" href="/250837/2600807142873448454" title="是何時開始,咱們互相再也不聯繫(文/小隱兒)" data-band="250837" data-rid="16443181897825536" data-uid="4830397" data-user-name="姚小明『據說』無言" data-radio-name="朝九·晚五" data-title="是何時開始,咱們互相再也不聯繫(文/小隱兒)" data-duration="604" data-url="http://cdn5.lizhi.fm/audio/2017/05/09/2600807142873448454_hd.mp3" data-id="2600807142873448454" data-cover="http://cdnimg103.lizhi.fm/radio_cover/2017/03/05/2588752303353985028.jpg"> <i class="leftPlayBtn js-play-btn" style="display:block;" title="" onclick="play(this);return false;"></i> </a> </li> </ul>url |
4.2 代碼實現
import java.io.IOException;spa import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements;.net /** * ClassName: TestJsoup * @Description: http://www.open-open.com/jsoup/selector-syntax.htm * @author limh * @date 2017年5月15日 */ public class TestJsoup { public Document getDocument (String url){ try { return Jsoup.connect(url).get(); } catch (IOException e) { e.printStackTrace(); } return null; }cdn public static void main(String[] args) { TestJsoup t = new TestJsoup(); Document doc = t.getDocument("http://www.lizhi.fm/193491/"); //Document doc = t.getDocument("http://www.lizhi.fm/250837/"); // 獲取目標HTML代碼 //Elements elements1 = doc.select("[class=audioList fontYaHei]"); //找出第一個class爲.audioList.fontYaHei的ul Element elements1 = doc.select("ul.audioList.fontYaHei").first(); // Elements elements2 = elements1.select("li"); Elements elements3 = elements2.select("a:contains(【直播】)"); //查找包含【直播】文本的a元素 String relHref = elements3.attr("data-url"); //獲取a元素的data-url屬性 System.out.println(relHref); } } |