java使用jsoup爬取网页内容

1. jsoup概念

jsoup是一款Java的HTML解析器,可直接解析某个URL地址、HTML文本内容。

2. jsoup的主要功能

1. 从一个URL,文件或字符串中解析HTML;

2. 使用DOM或CSS选择器来查找、取出数据;

3. 可操作HTML元素、属性、文本;

注:jsoup是基于MIT协议发布的,可放心使用于商业项目

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="" οnclick="play(this);return false;"></i>
        </a>
    </li>
</ul>


<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="" οnclick="play(this);return false;"></i>
        </a>
    </li>
</ul>

4.2 代码实现

import java.io.IOException;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

/**
 * 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;
        }

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

}
 

 

转载于:https://my.oschina.net/u/2484728/blog/899980

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值