使用jsoup获取页面元素

来源:互联网 发布:服装设计淘宝 编辑:程序博客网 时间:2024/04/16 23:26

之前想批量下载一个图站的图片,于是写了一个小工具,主要是使用了jsoup+线程池+文件切割算法实现

jsoup的使用方式和js中dom获取元素十分类似,都是通过url来获取html中的document对象

获取到整个html的文本dom之后就可以通过element对其进行元素的抽取了

比如我在这里进行了图片评分的过滤,防止下载到评分过低的图片


然后就是识别src属相中的url啦,记得在前面进行网址根目录的拼接


当获取到一级页面的全部缩略图之后(缩略图中包含了下一级页面的链接),把这些链接装入集合进行遍历处理

再次获取二级目录中的大图元素(这种高清图片一般是静态的,保存在网站的图片服务器上,前缀名包含static)


获取了静态图片地址之后就可以开始下载了,这里我是用了java的excuter线程池框架,并配上了一个文件切割的算法进行下载图片,这样就可以将一个图片使用多个线程共同下载,极快的提升了下载速度(实测满速下载,10m网下载速度为2.8 m/s)


然后在每个线程的run方法中使用流进行分类下载即可

然后将业务封装,将需要改变的信息包装到配置文件里,提升可用性