美文网首页Android开发探索
Java超简单实现网页数据的抓取

Java超简单实现网页数据的抓取

作者: itfitness | 来源:发表于2019-04-30 15:38 被阅读52次

目录

目录

前言

最近想做一个视频播放的APP,是那种可以播放电影电视剧的,结果在网上苦苦搜寻API接口发现爱奇艺等视频网站提供的视频接口虽然可以使用但是注册审核应用等步骤比较麻烦,并且使用它们的API不能在自己的播放器里播放,无奈只好利用Java写了一个抓取网页数据的程序来满足自己的需求了,在这里记录下实现的过程。

前期准备

●需要的jar包:

  1. jsoup-1.11.1.jar
  2. okhttp-3.12.0.jar
  3. okio-1.12.0.jar

●jsoup使用文档:https://www.open-open.com/jsoup/

案例实现

public class Test {
private static final String BASE_URL="http://www.baiwanzy.com";//这里使用的是百万资源网的资源
public static void main(String[] args) {
    asyncGet();
}
public static void asyncGet() {
    String encode = URLEncoder.encode("雪鹰领主");//对查询的数据进行Url编码
    String urlBaidu = "http://www.baiwanzy.com/index.php?m=vod-search&wd="+encode;
    OkHttpClient okHttpClient = new OkHttpClient(); // 创建OkHttpClient对象
    Request request = new Request.Builder().url(urlBaidu).build(); // 创建一个请求
    okHttpClient.newCall(request).enqueue(new Callback() { // 回调 
        
        public void onResponse(Call call, Response response) throws IOException {
            // 请求成功调用,该回调在子线程
            getMovieList(response.body().string());
        }
        
        public void onFailure(Call call, IOException e) {
            // 请求失败调用
            System.out.println(e.getMessage());
        }
    });
}
public static void getMovieList(String datas){
    Document doc = Jsoup.parse(datas);
//      根据css的后代选择器来找到相关的列表
    Elements links = doc.select(".xing_vb4 a");//这里是返回的列表的类来查找相关的a标签
    for (Element link : links) {
          String linkHref = link.attr("href");
          String linkText = link.text();
          System.out.println(BASE_URL+linkHref+"==="+linkText);
    }
}
}

相关文章

网友评论

    本文标题:Java超简单实现网页数据的抓取

    本文链接:https://www.haomeiwen.com/subject/mksvnqtx.html