android自动抓取网页数据库,Android Jsoup 爬取网页数据

本文主要介绍了在Android中利用Jsoup进行网页抓取的相关知识。首先强调爬取HTML标签需具备HTML基础知识,接着展示了如何使用Jsoup加载网页,包括get和post方法及相关请求参数设置。还介绍了基本标签解析和嵌套解析,通过select方法查找标签并遍历获取信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一不小心一个月又过去了,其实最近还是小忙小忙的,废话不多说,直接进入今天的主题吧。

HTML 标签

要去爬别人的 HTML 标签的话,首先你肯定得有一定的 HTML 的基础知识吧。比如说常用的标签,标签的相关属性,这个就不多说了,有相关问题都可以在 www.w3school.com.cn 的网站解决一下。

加载网页

最简单的,直接加载一个网页:

Document document = Jsoup.connect("https://www.google.com").get();

那看到最后的 get() 方法聪明滴你一定就猜到还有一个对应的 post() 方法了吧。另外,http 请求的相关操作都是可以设置的,包括 header 请求参数,请求超时等等。除此之外,本地的文件(IO流)等都是可以直接解析的哈。

Document document = Jsoup.connect("https://android-arsenal.com")

.timeout(5000)

.cookie("cookie", "cxxx")

.header("xx", "xx")

.userAgent("")

.get();

基本标签解析

之后咱们就得到了一个 Document 的对象了。这个对象就是对整个请求网页的封装,相关内容都可以在里面获取。

来吧,加入我们有下面一段html标签需要解析:

A single adapter for the whole project.

  • Now you do not need to implement adapters for RecyclerView.
  • You can easily use several types of cells in a single list.
  • Using this library will protect you from the appearance of any business logic in an adapter.
Mar 17, 2017

Jsoup 里面对于标签的寻找使用的方法是 select() 方法,这个方法不要太强大了。咱们一步一步的来。

比如我们要在茫茫标签中找到

的话,拿这里就是应该 findElementByClass() ,那么在 Jsoup 中是怎么定义这一块的呢?

d32477589a8d

Jsoup-selector.png

哈哈,很easy嘛,那就是 document.select("div.project-info clearfix") 咯,当然不是这样子的,等等 class 属性里面这个空格是什么意思啊?是不是一脸懵逼?这里最终的写法是 document.select("div.project-info.clearfix") 空格需要用 . 来处理。

Elements select = document.select("div.project-info.clearfix");

这里得到是一个集合。我们接下来就需要遍历这个集合,然后把里面的每一个标签都拔出来。

title 部分的解析,这里是一个

里面嵌套了一个 的标签。这里就涉及到了解析 标签了。这里我们需要对应的 href,也需要对应的 text , Jsoup 提供了对应的两个方法 attr() 和 text() 。

Elements elements = e.select("div.title");

if (!elements.isEmpty()) {

for (Element tittle : elements) {

Element first = tittle.select("a[href]").first();

if (first != null) {

title = first.text();

titleUrl = first.attr("href");

System.out.println("名称:" + title);

System.out.println("具体地址:" + titleUrl);

}

Elements select1 = tittle.select("a.tags");

if (!select1.isEmpty()) {

tag = select1.text();

tagUrl = select1.attr("href");

System.out.println("tags:" + tag);

System.out.println("tagUrl:" + tagUrl);

}

}

}

嵌套解析

到这里,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值