背景
学习 Android 到一段时间,想自己做一些项目练练手,需要数据怎么办呢?
- 自己造数据
- 少量的假数据
利用数组或者集合来存储少量数据。
- 大量的后台数据
这里的数据是指,自己获取数据,然后自己实现一个后台管理系统,通过这个系统去操作(增删改查)这些大量的数据。
用第三方的API接口
聚合数据(欠我一份广告费)
大量的接口数据,有免费的有收费的。干货集中营
代码家大神在维护,种类不多,但是接口格式很标准,使用起来很爽。
爬取数据
第三方工具
我使用过的就是八爪鱼,这个工具使用起来也很方便。但是有的缺点就是在获取网页的图片时,获取不到真正的地址,需要再次整理才能得到图片Url。脚本
Python听说不错,没学习不好评论。开源工具
Jsoup,这是最近发现的一个Java爬虫工具。
Jsoup 介绍
是什么?
- Jsoup 是一个 Java 的开源HTML解析器,可直接解析某个URL地址、HTML文本
能做什么?
- 从一个URL,文件或字符串中解析HTML
- 使用DOM或者CSS选择器来查找、取出数据
- 对HTML元素、属性、文本进行操作
这里是指Jsoup工具能够对HTML进行增删改查操作
- 清除不受信任的HTML (来防止XSS攻击)
不能做什么?
网站使用动态加载技术 jsoup没法爬,建议用htmlutil 工具
【动态加载技术?】
利用 ajax() 方法通过 HTTP 请求加载远程数据,该方法是 jQuery 底层 AJAX 实现, AJAXj 它主要用途是提供异步刷新,而jQuery又是一个兼容多浏览器的JavaScript库。
JavaScript一种脚本语言,用来给HTML网页增加动态功能。【为什么爬不了?】
Jsoup只能是抓取加载完成后的页面,源码是这么设计的,有时间去看看源码【解决办法】
换扒取数据的Url
换工具( htmlutil )
Google搜索
简单实现
实现步骤
得到自己想要爬取数据的url.
http://www.moxiu.com/themes
通过Jsoup的jar包中的方法将Html解析成Document,
添加依赖 compile ‘org.jsoup:jsoup:1.10.2’使用Document中的一些列get、first、children等方法获取自己想要的数据,如图片地址、名称等内容。
- 将得到的数据封装成自己的实体类。
- 将实体中的数据在页面加载出来。
展示的结果