在使用百度SDK开发时,需要获取其数据库中给出链接的网页中的图片。查了查百度,决定使用jsoup来获取图片。
jsoup 是一款Java的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套API,可通过DOM、CSS以及类似于jQuery的操作方法来取出和操作数据。
首先将jsoup.jar文件导入项目中(jsoup包官方下载地址);
然后新建一个类从而方便项目中多次调用;
接下来就是编写代码来获取网页中的元素了。
package com.hurricanespace.hurricanespace;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.IOException;
public class DownLoadPic {
public static String getURL(String webUrl) throws IOException{
String src = null;
Document doc = Jsoup.connect(webUrl).get();
//获取后缀为jpg的图片
Elements img = doc.select("img[src~=(?i)\\.(jpe?g)]");
//遍历元素
for(Element e : img){
src=e.attr("src");//获取img中的src路径
}
return src;
}
}
上面的代码使用了selector方式查找HTML文档中的元素
img[src~=(?i)\.(jpe?g)]就是selector选择器的一种基本语法,
[attr~=regex]: 利用属性值匹配正则表达式来查找元素
关于selector语法可以在官方API介绍中查看
获取下面网页的jpg图片
代码在eclipse中运行如下
获取到的连接打开为
获取的连接的图片可以在TextView中显示,在我的app中显示效果如下