用个实例进行爬取图片,但是我这个局限性很大,看看就行。
1.首先导入jar包
jsoup 主要的爬虫工具
commons-io 拷贝得到的图片
2.连接网站,得到html文档树document
Document doc=Jsoup.connect("").get();//字符串里放入网址
3.用便签选择器img[src]选取document中img元素
Elements select = doc.select(“img[src]”);
得到的是一个集合。
4.一个一个取出来获取src地址
for (Element e:
select) {
String src = e.attr(“src”);}
5.用一个函数把获取得到的图片保存在本地文件夹
把获取的图片编程输入流InputStream ,
创建一个输出流FileOutputStream
使用IO包里的IOUtils.copy(is,fo)拷贝
private void getImg(String src) throws Exception {
InputStream is = new URL(""+src).openStream();//URL里面的字符串需要参考你要爬的图片的地址是不是要加完整的路径
FileOutputStream fo = new FileOutputStream("D:\\图片/" + System.currentTimeMillis() + ".jpg");
IOUtils.copy(is,fo);
}
完整一点的代码
public class PcServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Document doc = Jsoup.connect(" ").get();//引号里填入网址
Elements select = doc.select("img[src]");
for (Element e:
select) {
String src = e.attr("src");
try {
getImg(src);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
private void getImg(String src) throws Exception {
InputStream is = new URL(" "+src).openStream();//引号里补充图片的完整地址
FileOutputStream fo = new FileOutputStream("D:\\图片/" + System.currentTimeMillis() + ".jpg");
IOUtils.copy(is,fo);
}
}