【怎样你懂的网站某个目录下的所有图片】!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 比如一个你懂的网站,www.xxx.com/images这个目录下存放的是这个网站的所有图片,而且可以直接在地址栏上敲出路径获取图片。。怎样才能用代码实现获取所有的图片并保持在自己的电脑上?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 呵呵,图片名有规律的话就简单了,比如1.jpg 2.jpg 直接多个线程,每个线程一个for循环 我之前写过一个从某个H论坛上批量下载图片的工具,运行了几个小时,近2W张图片。PS :我全删了,没传播。不要跨省啊! 现在只知道存放路径,然后要实现自动遍历所有的文件夹,这个不知道怎样做。。获取文件比较容易,用httpconnection就行。。 我最近在做一个TXT的读写文件,把某文件夹下的所有TXT文档内容读取并存放在一个刚创建的TXT文件里,虽然功能类似但好像和楼主的要求不符,楼主是在网络上批量下载,看看楼下有没有高人 今天上班打酱油,自己也写了个玩一下。。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(); }} http里没有列出目录下全部文件的语法,这不是FTP。要获得目录文件列表的话,需要站点管理员提供,比如打开IIS里的directory browsing的选项或者提供一个文件目录页 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 楼上获取的是已经引用在页面中的图片吧,楼主是需要已经知道项目工程的一个image文件夹,如何提取里面所有的图片。常规方法貌似没有。 看项目源码时的疑问 求大牛帮忙看看看这段代码?为什么不能输出? session.save(obj)问题 求助: 关于正则表达式。 固定为 四位英数字 如何用正则表达式表达? 在MYECLIPSE中没办法影射成spring dao?急 讨论hibernate中的inverse 如何学习J2EE STRUTS的查询 请问使用以下这些对象需要import哪些package?分别可以从哪download?(jdk1.3) 替换DOM的节点 关于移除xml之中><之间的空格 java读ldap,只能读500条数据?急!!!
PS :我全删了,没传播。不要跨省啊!
获取文件比较容易,用httpconnection就行。。
虽然功能类似但好像和楼主的要求不符,楼主是在网络上批量下载,看看楼下有没有高人
今天上班打酱油,自己也写了个玩一下。。
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();
}
}
要获得目录文件列表的话,需要站点管理员提供,比如打开IIS里的directory browsing的选项或者提供一个文件目录页
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