比如一个你懂的网站,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(); } }}