一、浅谈网络爬虫
随着网络的迅速发展,互联网成为大量信息的载体,如何有效的利用这些信息成为巨大的挑战。区别于搜索引擎,定向抓取相关网页资源的网络爬虫应用而生,可以根据既定的抓取目标有效的选择网络上需要的网页资源和信息。如用户想获得知乎豆瓣等网站上的主要数据进行分析,如用户想获得某个论坛贴吧内的所有图片等,把这项工作交给网络爬虫,可以大大提高人们的效率。
二、Jsoup简介
Jsoup是一个 Java 的开源HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常方便的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
Jsoup主要有以下功能:
- 从一个字符串、文件或者一个 URL 中解析HTML
- 提供一系列方法对HTML进行数据抽取
- 对HTML元素、属性、文本进行操作
- 消除不受信任的HTML (来防止XSS攻击)
简言之,安卓跟web爬虫基本上没什么区别,都是通过请求获得响应。Android返回的是json格式的字符串,web返回的是页面,通过Jsoup我们可以方便的对网页的数据进行操作。
三、Jsoup的配置
首先在Jsoup官网 https://jsoup.org/download 下载对应的jar包
并将下载的jar包导入项目的依赖库中
implementation ‘org.jsoup:jsoup:1.12.1’
然后在gradle中添加以下依赖
compile 'org.jsoup:jsoup:1.12.1'
由于jsoup需要获取网络数据,所以需要添加网络权限
<uses-permission android:name="android.permission.INTERNET" />
四、Jsoup的使用
1.从一个字符串、文件或者一个 URL 中解析HTML
String html = "<html><head><title>First parse</title></head>"
+ "<body><p>Parsed HTML into a doc.</p></body></html>";
Document doc = Jsoup.parse(html);
当对象是URL时,使用 Jsoup.connect(String url)方法:
Document doc = Jsoup.connect("http://example.com/").get();
String title = doc.title();
当URL请求为post方式