Android自由开发者 通过Jsoup抓取网页数据

      现在网上流行了一种自由开发者的风气;就是自己私下写一个简易的app上传到github上;可以以此项目作为开源;同时熟悉git操作;但是很多时候我们都需要一些数据来呈现在app中;如图片列表,如文字+图片列表;网上有很多开放式的api可以调用,如百度api、http://gank.io/api(干货集中营api);如果你现在想弄自己的一套数据,想把一些网站的数据整合过来使用,那就需要去抓取某些网页中的特定数据;

我们是通过Jsoup来抓取数据的;jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容;

关于Jsoup的介绍,请访问Jsoul的官网:http://jsoup.org/

关于Jsoup的jar包下载地址:http://jsoup.org/download

关于Jsoup的官网API文档查询:http://jsoup.org/apidocs/

这里:http://www.open-open.com/jsoup/

AndroidStudio中把jar包放入libs文件下;右键add as a libr...后就可以使用了;废话不多说,这里就是讲怎么通过Jsoup去抓取网页特定数据;

比如这里我们需要抓取泡在网上的日子中安卓开发里面文章的标题+图片+详情链接;

Android自由开发者 通过Jsoup抓取网页数据_第1张图片

直接右键显示网页源码(或者F12);我们可以看到很多HTML+CSS标签等;

Android自由开发者 通过Jsoup抓取网页数据_第2张图片

我们直接在里面快速找到我们需要的标题(如:Realm for Android快速入门教程、Android 6.0状态栏使用灰色文字和图标);之后我们需要分析是从什么节点开始才是一条数据;就好比数组[{},{}]一样;里面每个数据都是以什么开头的;这里我们分析之后可以看到是以

为节点就是一条数据;我们需要的详情连接是在
层下第一个标签中;图片地址是在第二个标签中, 我们需要的标题是在
层下的子标签里面;

      我们所需要的东西已经找到;接下来我们去抓取出数据封装一下就可以用了;

代码如下:

可以看到先是通过Jsoup.connect(url).get();获取一个Document;这样我们就可以通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据;首先解析我们上面说的节点

会得到一个Elements 通过for循环;我们在循环中取我们需要的数据;看代码可以发现Elements的两个属性select和attr;select可以认为是提取
Android自由开发者 通过Jsoup抓取网页数据_第4张图片

可以看到我们需要的数据已经打印出来了;

接着我们就是接收跟封装数据了,毕竟我们习惯了后台服务器返回的那种json数据;接下来写一个简易的Bean类如下:

Android自由开发者 通过Jsoup抓取网页数据_第5张图片

里面序列化的代码没截全;把上面代码改下改掉;顺便加上分页功能:

Android自由开发者 通过Jsoup抓取网页数据_第6张图片

这样我们就能愉快地使用List数据了;

最后特此声明:用了泡在网上的日子的数据;

你可能感兴趣的:(Android自由开发者 通过Jsoup抓取网页数据)