环境搭建:下载jsoup-1.14.1.jar,Jsoup官网 https://jsoup.org/download 下载对应的jar包并将该文件放入项目的libs文件夹内,同时在app目录下的build.gradle加入
implementation 'org.jsoup:jsoup:1.14.1'
版本根据自己下载的jsoup版本进行导入,然后运行build.gradle文件,使得jsoup在整个项目中可以调用。
由于安卓版本的不断提升,对于网络访问越来越严格,需要我们在AndroidManifest.xml文件内加入权限,代码如下:
<uses-permission android:name="android.permission.INTERNET" />
同时对于网络爬虫要求也很高,不能在主线程进行网络爬虫,本文后面会介绍方法。
使用jsoup对网页进行爬取的基础代码:
document=(Document)Jsoup.connect("https://k.sina.com.cn/article_1784473157_6a5ce6450200294gz.html").get();
Elements text = document.select("p");
一般需要使用try进行包装,书写格式参考本文下面的代码。
Select方法将返回一个Elements集合,并提供一组方法来抽取和处理结果。
Selector选择器概述
tagname: 通过标签查找元素,比如:a
ns|tag: 通过标签在命名空间查找元素,比如:可以用 fb|name 语法来查找 <fb:name> 元素#id
: 通过ID查找元素,比如:#logo
.class: 通过class名称查找元素,比如:.masthead
[attribute]: 利用属性查找元素,比如:[href]
[^attr]: 利用属性名前缀来查找元素,比如:可以用[^data-] 来查找带有HTML5 Dataset属性的元素
[attr=value]: 利用属性值来查找元素,比如:[width=500]
[attr^=value], [attr$=value], [attr*=value]: 利用匹配属性值开头、结尾或包含属性值来查找元素,比如:[href*=/path/]
[attr~=regex]: 利用属性值匹配正则表达式来查找元素,比如: img[src~=(?i)\.(png|jpe?g)]
*: 这个符号将匹配所有元素
Selector选择器组合使用
el#id: 元素+ID,比如: div#logo
el.class: 元素+class,比如: div.masthead
el[attr]: 元素+class,比如: a[href]