Android-jsoup爬虫

Android Jsoup爬虫

最近项目中需要用到一些数据,苦于没有数据源。在网上各种搜罗爬虫的第三方工具:火车头、八爪鱼这些都不太理想,偶然间发现github上有一个java开源的项目“jsoup”利用java代码去操作网页的元素,感觉可行。今天就给大家带来在android中如何使用jsoup爬虫的教程。

1.新建android工程,导入jsoup包

1.首先将jsoup的包下载下来,他是以jar包的形式提供的,也可以使用依赖的方式(这里我是用jar的形式)。下载地址:https://jsoup.org/download

2.将下载好的jar包放入工程的libs文件夹下
在这里插入图片描述
3.将jar包依赖到工程中
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.开始使用

我们来到我们新建的MainActivity中开始编写代码,这里我以爬我自己的一篇博客为例。

Jsoup.connect("https://blog.csdn.net/qq_36050563/article/details/109710952")

通过connect(‘爬取的网址’)与此地址建立起连接。

 Document document = Jsoup.connect("https://blog.csdn.net/qq_36050563/article/details/109710952").get();

通过get方式获取Doucment对象,如果你学习过前端对整个文档对象一定不陌生,有了他就可以操作整个html页面的元素了。注意这里会有异常tye-catch一下就好。

3.爬取

我要爬取的网页是整个样子的
在这里插入图片描述

1.比如我想爬取这个网页的标题,先要在浏览器中F12审查元素,点击左上角的小箭头指向这个标题
在这里插入图片描述
这里的h1就是标题,他有class 和 id 有这两个我们就能很好的找到这个标题了,当然通过’‘h1’'标签也能找到。

public class MainActivity extends AppCompatActivity {

    private static final String TAG = "MainActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        new Thread(){
            @Override
            public void run() {
                try {
                    Document document = Jsoup.connect("https://blog.csdn.net/qq_36050563/article/details/109710952").get();
                    Element title = document.getElementById("articleContentId");
                    Log.e(TAG, "run: "+title.text());
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }.start();
    }
}

在这里插入图片描述

这样标题我们就拿到了。

如果用document.getElementsByClass(“title-article”)的话返回的是一个数组,你需要再取到第一个元素才行。包括document.getElemengsByTag(“h1”)标签选择器也是一样的。

4.高级爬取

有人可能会问如果我爬取的是一个列表,每个列表的详情需要点进去才能获取到该如何是好?

这里给点小的提示,那就通过类选择器或者标签选择器获取这个外面的列表。一般这种列表都是a标签,循环拿到他的href属性中的链接地址,通过connect(‘爬取的网址’)与此地址建立起连接就可以了。

5.结语

好了今天的android版本的爬虫就讲到这里,下一篇带大家实现高级爬虫功能+greendao数据库实现本地存储。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值