这几天写了一个Android上面简单的爬虫Demo
数据爬取完后通过RecyclerView展示,这篇文章先写爬取数据部分

这里我爬虫测试网站是:什么值得买

想要爬取的数据是首页的一些精选文章,主要爬取文章标题、图片、简介

这个是我爬到的数据

这里需要引用到Jsoup和OkHttp的jar包,我是下载下来,添加到项目工程当中

也可以直接在gradle文件当中配置

implementation 'org.jsoup:jsoup:1.11.3'
implementation 'com.squareup.okhttp3:okhttp:3.4.1'

然后就可以开始写代码爬虫啦

实体类Article.java

/**@Author:Swallow*@Date:2019/3/21* 抓取到的文章数据封装*/
public class Article {private String title;private String author;private String imgUrl;private String context;private String articleUrl;private String date;private String from;//有几个属性还没用到,所以构造方法先用上这四个有爬取到数据的public Article(String title, String author, String imgUrl, String context) {this.title = title;this.author = author;this.imgUrl = imgUrl;this.context = context;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}public String getImgUrl() {return imgUrl;}public void setImgUrl(String imgUrl) {this.imgUrl = imgUrl;}public String getContext() {return context;}public void setContext(String context) {this.context = context;}public String getArticleUrl() {return articleUrl;}public void setArticleUrl(String articleUrl) {this.articleUrl = articleUrl;}public String getDate() {return date;}public void setDate(String date) {this.date = date;}public String getFrom() {return from;}public void setFrom(String from) {this.from = from;}@Overridepublic String toString() {return "Article{" +"title='" + title + '\'' +", author='" + author + '\'' +", imgUrl='" + imgUrl + '\'' +", context='" + context + '\'' +", articleUrl='" + articleUrl + '\'' +", date='" + date + '\'' +", from='" + from + '\'' +'}';}
}

OkHttp请求网络


/**@Author:Swallow*@Date:2019/3/7*/
public class OkHttpUtils {public static String OkGetArt(String url) {String html = null;OkHttpClient client = new OkHttpClient();Request request = new Request.Builder().url(url).build();try (Response response = client.newCall(request).execute()) {//returnhtml = response.body().string();} catch (IOException e) {e.printStackTrace();}return html;}}

抓取数据的类
这里用到Jsoup,它主要是解析获取到的网页资源的HTML标签来抓取里面的数据
这里我们可以到原本的网址上去查看网页源码,就可以看到网页的结构,还有要获取的数据所对应的标签

/**@Author:Swallow*@Date:2019/3/21*/
public class GetData {
/*** 抓取什么值得买首页的精选文章* @param html* @return  ArrayList<Article> articles*/public static ArrayList<Article> spiderArticle(String html){ArrayList<Article> articles = new ArrayList<>();Document document = Jsoup.parse(html);Elements elements = document.select("ul[class=feed-list-hits]").select("li[class=feed-row-wide J_feed_za ]");for (Element element : elements) {String title = element.select("h5[class=feed-block-title]").text();String author = element.select("div[class=feed-block-info]").select("span").text();String imgurl = element.select("div[class=z-feed-img]").select("a").select("img").attr("src");String context = element.select("div[class=feed-block-descripe]").text();String url = element.select("div[class=feed-block z-hor-feed ]").select("a").attr("href");Article article = new Article(title,author,imgurl,context);articles.add(article);Log.e("DATA>>",article.toString());}return articles;}
}

后面直接调用方法就可以
这里要注意一点就是,Android上面发送网络请求要放到子线程当中,所以调用的时候需要开启一个新的子线程

final String url = "https://www.smzdm.com/";new Thread(){public void run(){String html = OkHttpUtils.OkGetArt(url);ArrayList<Article> articles = GetData.spiderArticle(html);//发送信息给handler用于更新UI界面Message message = handler.obtainMessage();message.what = 1;message.obj = articles;handler.sendMessage(message);}}.start();

Android爬虫(一)使用OkHttp+Jsoup实现网络爬虫相关推荐

  1. Android实战——jsoup实现网络爬虫,糗事百科项目的起步

    Android实战--jsoup实现网络爬虫,爬糗事百科主界面 本篇文章包括以下内容: 前言 jsoup的简介 jsoup的配置 jsoup的使用 结语 前言 对于Android初学者想要做项目时,最 ...

  2. 网易微专业python爬虫工程师一期多久_微专业-Python爬虫工程师 – 3个月成为网络爬虫工程师...

    [2020最新]Python爬虫工程师 – 3个月成为网络爬虫工程师 课程简介 1.平均薪资高 入行爬虫工程师薪资可达15w高级爬虫工程师薪资可达30w

  3. 【爬虫】手把手教你写网络爬虫(2)

    介绍 大家好!回顾上一期,我们在介绍了爬虫的基本概念之后,就利用各种工具横冲直撞的完成了一个小爬虫,目的就是猛.糙.快,方便初学者上手,建立信心.对于有一定基础的读者,请不要着急,以后我们会学习主流的 ...

  4. Python爬虫工程师 3个月成为网络爬虫工程师

    攻城狮整理网易云课堂<Python爬虫工程师 3个月成为网络爬虫工程师> 1.平均薪资高 入行爬虫工程师薪资可达15w 高级爬虫工程师薪资可达30w 2.入行门槛低 从事爬虫工程师职位最多 ...

  5. 【爬虫实战】10应用Python网络爬虫——定向爬取百度百科文字

    python百度百科爬虫 网页源代码分析 编程实现 小结 网页源代码分析 首先找一下需要爬取的正文: 对应的源代码有两个地方: 上图往后翻会发现省略号,所以下面这张图才是我们需要爬取的部分: 编程实现 ...

  6. python爬虫能干什么-Python实战:网络爬虫都能干什么?

    整站下载器:siteSucker https://blog.csdn.net/l_215851356/article/details/54377582 http://python.jobbole.co ...

  7. python爬虫教程视频下载-利用Python网络爬虫获取电影天堂视频下载链接【详细教程】...

    相信大家都有一种头疼的体验,要下载电影特别费劲,对吧?要一部一部的下载,而且不能直观的知道最近电影更新的状态. 今天以电影天堂为例,带大家更直观的去看自己喜欢的电影,并且下载下来. [二.项目准备] ...

  8. python编写爬虫的步骤-python学习: 写网络爬虫程序的三个难点

    写爬虫,是一个非常考验综合实力的活儿.有时候,你轻而易举地就抓取到了想要的数据:有时候,你费尽心思却毫无所获. 好多Python爬虫的入门教程都是一行代码就把你骗上了"贼船",等上 ...

  9. 从零开始学python网络爬虫-从零开始学Python 三(网络爬虫)

    本章由网络爬虫的编写来学习python.首先写几行代码抓取百度首页,提提精神,代码如下: importurllib.request file=urllib.request.urlopen(" ...

最新文章

  1. R语言使用ggplot2包的快速可视化函数qplot绘制散点图实战
  2. NavigationController 已经洗干净了, 就等你来
  3. vue 组件发布记录
  4. 他95年出生,却拥有10年编程经验
  5. Node:根据开发环境配置axios默认路径
  6. 数据结构c语言严4pdf,数据结构(C语言)严蔚敏 吴伟明 编著 04.pdf
  7. Docker使用CA认证
  8. 最全的基于MFC的ActiveX控件开发教程
  9. android关于无法debug
  10. 前端性能优化之----静态文件客户端离线缓存_20191110
  11. 处理安卓机不支持backdrop-filter毛玻璃效果样式
  12. Deepin与Debian的对应关系
  13. 盘点机数据怎么转换成电脑盘点系统的数据
  14. 二项式系数(枚举+二分+二项式定理)
  15. 人喜欢音乐的部分原因:形成期望,不确定性
  16. 2020.11.09-2020.11.15工作周报
  17. 永恒之蓝-永恒之蓝漏洞(linux)
  18. “从零到一“基于Freeswitch二次开发:Freeswitch入门与网络架构 (一)
  19. h5 加载完成_从零到一:实现通用一镜到底 H5
  20. 微型计算机上的南桥芯片功能,谈论计算机主板的芯片组和南北桥

热门文章

  1. 服务器地址和客户端地址详解与区别
  2. 微信小程序参数二维码生成朋友圈分享图片
  3. github史上最全教程
  4. vscode中配置LeetCode插件的教程(愉快刷题)
  5. 使用Navicat和Transact-SQL语言两种方法创建、修改和删除表
  6. xp怎么删除计算机管理员用户名和密码,Windows XP 的 Administrator 超级管理员密码忘记了,如何清除?...
  7. XMUTOJ-默罕默德的炸弹
  8. Spring学习笔记(二十三)——实现网站微信扫码登录获取微信用户信息Demo
  9. 计算机图形学中需要掌握的数学基础知识有哪些?
  10. win10系统麦克风声音太小怎么设置