####1、功能
抓取网页上的数据
1)这是csdn 播客主页,按F12 显现 html 源码
2)我想抓取 所有 的 博客的标题,和博客的链接网址
//这个是节点<div 下面有很多标签 h4 a span
<div class="article-item-box csdn-tracking-statistics" data-articleid="80242077">
<h4 class="text-truncate">
//这个是链接地址
<a href="" target="_blank">
<span class="article-type type-4">
译 </span>
ububtu 平台 AVS搭建 </a> //这个是标题
</h4>
####2、了解html
先了解html ,有助于我们对数据分析
1)html 就类似于我们 Android xml 文件,用来做布局等数据的转换。
2)html 有节点 、 标签 等 构成,这是我们经常使用的
3)我们想找什么样的数据只要找到他所对应的节点、标签。
####3、json 配置
我们需要用到json 帮助我们将html 上的数据转换成 java 各种类型。
1)官网下载
JSOUP下载 2)将 下载的 *.jar 放到 Android studio 项目工程 libs 目录下, 右键点击 选择 “Add As Library”.
####4、功能代码
package com.example.lum.myapplication;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.IOException;
public class MainActivity extends AppCompatActivity {
private String Tag = "lum ";
private String BLOG_URL = "";
//hello
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GetDataThd myThread = new GetDataThd();
myThread.start();
}
private class GetDataThd extends Thread {
@Override
public void run() {
super.run();
try {
System.out.println("开始进入线程");
Document doc = Jsoup.connect(BLOG_URL).get();//通过url获取到网页内容
System.out.println("选择节点");
Elements elements = doc.getElementsByClass("article-item-box csdn-tracking-statistics");//查找所有class为"link_title"的元素
for (Element e : elements) {
Elements titles = e.getElementsByTag("h4");//在每一个找到的元素中,查找<h4>标签
for (Element title : titles) {
//查找 h4 标签下的 a 标签 中的 href 属性
String url = title.select("a").attr("href");//获取标签属性,也就是文章链接
//获取 h4 标签的文字
String dataText = title.text();//获取标签的内容,也就是文章标题
System.out.println(Tag + url);
System.out.println(Tag + dataText);
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
log 打印:
文章参考:
Android之Jsoup解析Html抓包其他网站数据
1) 使用异步任务加载网络上json数据并加载到ListView中
2) Android网络数据JSON解析使用总结
3) Android中解析html网页
4)Android解析HTML网页数据 第一个方法Jsoup(一)
5、手把手教学 Android用jsoup解析html
https://www.jianshu.com/p/a620a2664f58