日期:2014-05-19  浏览次数:20706 次

【怎样你懂的网站某个目录下的所有图片】!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
比如一个你懂的网站,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);
                                whil