比如一个你懂的网站,www.xxx.com/images这个目录下存放的是这个网站的所有图片,而且可以直接在地址栏上敲出路径获取图片。。怎样才能用代码实现获取所有的图片并保持在自己的电脑上??

解决方案 »

  1.   

    呵呵,图片名有规律的话就简单了,比如1.jpg 2.jpg 直接多个线程,每个线程一个for循环
      

  2.   

    我之前写过一个从某个H论坛上批量下载图片的工具,运行了几个小时,近2W张图片。
    PS :我全删了,没传播。不要跨省啊!
      

  3.   

    现在只知道存放路径,然后要实现自动遍历所有的文件夹,这个不知道怎样做。。
    获取文件比较容易,用httpconnection就行。。
      

  4.   

    我最近在做一个TXT的读写文件,把某文件夹下的所有TXT文档内容读取并存放在一个刚创建的TXT文件里,
    虽然功能类似但好像和楼主的要求不符,楼主是在网络上批量下载,看看楼下有没有高人
      

  5.   


    今天上班打酱油,自己也写了个玩一下。。
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileReader;
    import java.io.FileWriter;
    public class test { public static void main(String[] args) throws Exception{

    searchFile(new File("E:/oracle"));
    }
    public static void searchFile(File file) throws Exception {

    if(file.isFile()) {

    if(file.getName().toLowerCase().lastIndexOf(".txt") != -1) {
    moveFile(file);
    }
    } else {

    File[] files = file.listFiles();
    for(File f:files) {
    searchFile(f);
    }
    }
    }

    public static void moveFile(File file) throws Exception { String str = null;
    FileReader fr = new FileReader(file);
    BufferedReader br = new BufferedReader(fr);

    FileWriter fw = new FileWriter("e:/所有的内容.txt",true);
    BufferedWriter bw = new BufferedWriter(fw);

    while((str = br.readLine()) != null) {
    bw.write(str);
    bw.newLine();
    }

    br.close();
    fr.close();
    bw.close();
    fw.close();
    }
    }
      

  6.   

    http里没有列出目录下全部文件的语法,这不是FTP。
    要获得目录文件列表的话,需要站点管理员提供,比如打开IIS里的directory browsing的选项或者提供一个文件目录页
      

  7.   

    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();
    }
    }
    }刚写的,楼主试下吧。
    要引入包  htmlparser.jar,htmllexer.jar
      

  8.   

    楼上获取的是已经引用在页面中的图片吧,楼主是需要已经知道项目工程的一个image文件夹,如何提取里面所有的图片。常规方法貌似没有。