android web 爬虫,Android学习——Jsoup实现网络爬虫,爬取贤集网

前言

jsoup的简介

使用项目原话:jsoup是一个Java库来处理实际的HTML。它提供了一个非常方便的API来提取和操纵数据,使用最好的DOM,CSS和jquery-like方法

jsoup的配置

jsoup的配置很简单,需要在gradle中添加以下依赖

compile 'org.jsoup:jsoup:1.10.2'

由于jsoup需要获取网络数据,所以记得添加网络权限

正文

已经通过Jsoup.connect(URL).get();方法获取到整个网站的代码,但是发现我需要的新闻板块是这样的,没有任何标识

台湾液晶面板厂中华映管申请破产重整! 负债348亿新台币

于是我采用获取全文有href的a标签,同时为了排除网站上一些板块的导航入口,href中又必须含有"/connect/“和”/html/"

new Thread() {

@Override

public void run() {

super.run();

try {

Document doc = Jsoup.connect(WebMainURL).get();

Elements els = doc.select("a[href]");

for(Element el : els){

String href=el.attr("href");

if (href.contains("/special/") && href.contains("html"))

{

Log.e("完整",el.toString());

Log.e("链接",href);

Log.e("内容",el.text());

Log.e("分隔","\n"+"----------------------------------------------------------");

}

}

}

catch (IOException e) {

e.printStackTrace();

}

}

}.start();

结果如下

a9ccced202d51ad48e057a50d6f0b6fc.png

然后就可以进去获取更具体的作者、时间、内容等信息,为了方便测试,我这里先指定进入一个网址。并找到了它代码中的作者和时间

文章来源: 半导体投资联盟       发布时间:2018-12-14

谢天谢地它终于有class了!感人!,马上读取出它的text,

发现是这样的 文章来源: 半导体投资联盟 发布时间:2018-12-14

获取到“发布时间”的位置,用2个substring得到作者和时间

if(href.equals("/special/detail_375109.html")){

Document docDetailRaw = Jsoup.connect(WebMainURL+href).get();

Elements els_docDetail = docDetailRaw.select("div.public-time");

String doc_detail = els_docDetail.text();

int timeInString = els_docDetail.text().indexOf("发布时间");

String doc_detailAuthor = doc_detail.substring(5,timeInString).trim();

String doc_detailTime = doc_detail.substring(timeInString+5).trim();

Log.e("author",doc_detailAuthor);

Log.e("time",doc_detailTime);

}

log如下

12-15 06:36:30.622 9210-9226/com.example.asus.spidertest E/author: 半导体投资联盟

12-15 06:36:30.622 9210-9226/com.example.asus.spidertest E/time: 2018-12-14

同理,文章的内容也能轻而易举爬出来了

Elements els_docContent = docDetailRaw.select("div.main-text");

String doc_content = els_docContent.text();

Log.e("content",doc_content);

但是发现没有图片

参考(Android开发技巧——TextView加载HTML的图片及代码显示问题)

最后成功!

acf29a248fbbf1842bd48ea1618d37e0.png

后面就是一些封装成Bean,连接数据库等操作,可以自己根据需求来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值