文章目录
前言
我们可以使用jsoup包来爬取一些网站上的信息,并对其进行处理
一、获取网页源码
依赖包:
import okhttp3.ConnectionPool;
import okhttp3.Dispatcher;
import okhttp3.OkHttpClient;
import okhttp3.Request;
private static final OkHttpClient OK_HTTP_CLIENT = new OkHttpClient
.Builder()
.connectTimeout(超时时间, TimeUnit.SECONDS)
.dispatcher(线程调度策略)
.connectionPool(new ConnectionPool(2, 1, TimeUnit.MINUTES))
.build();
Request request = new Request.Builder().url(要获取的网页).build();
String s =OK_HTTP_CLIENT.newCall(request).execute().body().string();//s即为网页源码的字符串
二、获取元素
1.创建Document对象
Document document = Jsoup.parse(s);
2.通过DOM获取对象
Elements elements=getElementById(String id):通过id来获取
Elements elements=getElementsByTag(String tagName):通过标签名字来获取
Elements elements=getElementsByClass(String className):通过类名来获取
Elements elements=getElementsByAttribute(String key):通过属性名字来获取
Elements elements=getElementsByAttributeValue(String key, String value):通过指定的属性名字,属性值来获取
Elements elements=getAllElements():获取所有元素
3.通过select获取对象
传入一个类似于CSS或jQuery的选择器字符串来获取元素
例:
Elements elements = doc.select(“a”) :获取a标签的元素
Elements elements = doc.select(“a[href]”);获取含有href属性的a标签的元素
4.获取单个对象
Element element = 获取对象方式.first(): 获取满足条件的第一个对象
Element element = 获取对象方式.get(i): 获取满足条件的下标为i的元素
5.获取文本
◇Element.text():获得得一个元素中的文本。
◇Element.attr(String key):获得key属性的值
三、JSON和对象的互相转换
依赖包
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
1.对象转换成JSON字符串
String s=JSONObject.toJSONString(对象);
2.JSON字符串转化成单个对象
T obj = JSON.parse(JSON字符串, T.class);
3.JSON字符串转化成某个类的数组
List obj = JSON.parseArray(JSON字符串, T.class);
总结
本文收集了Jsoup的一些常用方法,可供初步学习Jsoup,如有进一步的疑问可在评论区回复,共同进步。