当前位置: 代码迷 >> J2EE >> 【怎样你懂的网站某个目录上的所有图片】!
  详细解决方案

【怎样你懂的网站某个目录上的所有图片】!

热度:21   发布时间:2016-04-22 01:08:38.0
【怎样你懂的网站某个目录下的所有图片】!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
比如一个你懂的网站,www.xxx.com/images这个目录下存放的是这个网站的所有图片,而且可以直接在地址栏上敲出路径获取图片。。怎样才能用代码实现获取所有的图片并保持在自己的电脑上??

------解决方案--------------------
探讨

纯属学习,别想歪了。。

------解决方案--------------------
我之前写过一个从某个H论坛上批量下载图片的工具,运行了几个小时,近2W张图片。。。。
PS :我全删了,没传播。不要跨省啊!
------解决方案--------------------
我最近在做一个TXT的读写文件,把某文件夹下的所有TXT文档内容读取并存放在一个刚创建的TXT文件里,
虽然功能类似但好像和楼主的要求不符,楼主是在网络上批量下载,看看楼下有没有高人
------解决方案--------------------
安装了迅雷,在网页上点右键,不是有“使用迅雷下载全部键接”吗。
进去之后,可以选择下载的文件类型,你就选择要的图片的后缀的文件就可以了。
------解决方案--------------------
让我想起了linux的wget神器啊。。。
------解决方案--------------------
http里没有列出目录下全部文件的语法,这不是FTP。
要获得目录文件列表的话,需要站点管理员提供,比如打开IIS里的directory browsing的选项或者提供一个文件目录页
------解决方案--------------------
Java code
package cn.yq;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.MalformedURLException;import java.net.URL;import org.htmlparser.Node;import org.htmlparser.NodeFilter;import org.htmlparser.Parser;import org.htmlparser.filters.NodeClassFilter;import org.htmlparser.filters.OrFilter;import org.htmlparser.tags.ImageTag;import org.htmlparser.tags.LinkTag;import org.htmlparser.util.NodeList;import org.htmlparser.util.ParserException;public class URLParse {    public static void main(String[] args) {        try {               Parser parser = new Parser("http://slide.sports.sina.com.cn/euro2012/slide_2_31402_29988.html");              parser.setEncoding("gb2312");            //提取链接            NodeFilter frameFilter = new NodeFilter() {                public boolean accept(Node node) {                    if (node.getText().startsWith("frame src=")) {                        return true;                    } else {                        return false;                    }                }            };            //过滤出图片            OrFilter orFilter = new OrFilter(new NodeClassFilter(LinkTag.class), new                     NodeClassFilter(ImageTag.class));            OrFilter linkFilter = new OrFilter(orFilter, frameFilter);                        NodeList nodelist = parser.extractAllNodesThatMatch(linkFilter);            //循环取得image标签            for (int i = 0; i < nodelist.size(); i++) {                Node tag = nodelist.elementAt(i);                if (tag instanceof ImageTag)                {                    ImageTag image = (ImageTag) nodelist.elementAt(i);                    String urlstr = image.getImageURL();                    InputStream is;                    OutputStream os;                    int len;                    if(urlstr.endsWith("jpg") || urlstr.endsWith("gif")){                        System.out.println(urlstr);                        //下载到本地目录                        byte[] buf = new byte[102400];                        try {                            URL url = new URL(urlstr);                            String suffix = urlstr.substring(urlstr.lastIndexOf("."),urlstr.length());                            try {                                is = url.openConnection().getInputStream();                                os = new FileOutputStream("d:/downloadimage/" + i + suffix);                                while((len = is.read(buf)) != -1){                                    os.write(buf,0,len);                                }                                os.close();                                                            is.close();                            } catch (IOException e) {                                e.printStackTrace();                            }                            } catch (MalformedURLException e) {                            e.printStackTrace();                        }                    }                }            }        }catch (ParserException e) {            e.printStackTrace();        }    }}
  相关解决方案