clq
浏览(0) +
2010-01-20 11:56:49 发表
编辑
关键字:
java 下载图片
clq
SOURCE CODE: getImages.java
import java.util.*;
import java.io.*;
import java.net.*;
public class getImages {
public static void getImageURLs(String input1, String input2) throws Exception
{
try {
int src=0, secondQuote=0;
byte byteArray[] = new byte[4082];
String temp = new String();
String baseURL = "http://www.mrjameswright.com/",
htmlFile="index.php",
url = baseURL + htmlFile,
proxy = "proxy.yourcompany.org",
port = "8080",
resetBaseURL = baseURL;
if (!(input1.indexOf("http://") == -1 || input2.equals("")))
{
baseURL = input1;
htmlFile = input2;
url = baseURL + htmlFile;
} else { System.out.println("Invalid input!!!"); return; }
URL server = new URL(url);
Properties systemProperties = System.getProperties();
systemProperties.setProperty("http.proxyHost",proxy);
systemProperties.setProperty("http.proxyPort",port);
HttpURLConnection connection = (HttpURLConnection)server.openConnection();
// You might need to spoof some settings: browser (user-agent),
referer, and operating system
connection.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows XP)");
connection.setRequestProperty("Referer","http://www.google.com");
connection.setRequestProperty("ua-os", "Windows XP");
connection.setRequestMethod("POST");
connection.setDoOutput(true);
connection.connect();
System.out.println();
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
//System.out.println(line);
while (line.indexOf("src=") > -1)
{
src= line.indexOf("src=");
secondQuote= line.indexOf('"', line.indexOf('"', src)+1);
if (line.indexOf("http://", src) == src+5) baseURL = "";
else {
if (line.indexOf("/") == src+5) src++;
baseURL = resetBaseURL;
} // end of else
//System.out.println(line);
//System.out.println(line.indexOf("http://",src));
//System.out.println("SRC: " +src+" 2ndQ: "+secondQuote+ "
"+baseURL+line.substring(src+5,secondQuote));
downloadImage(baseURL+line.substring(src+5,secondQuote));
line = line.substring(secondQuote, line.length());
} // end of while loop
} // end of while loop
in.close();
}
catch ( IOException e ) { e.printStackTrace(); }
} // end of getImageURLs
public static void downloadImage(String address)
{
String localFileName = address.substring(address.lastIndexOf("/")+1);
OutputStream out = null;
URLConnection conn = null;
InputStream in = null;
try {
URL url = new URL(address);
Properties systemProperties = System.getProperties();
systemProperties.setProperty("http.proxyHost","proxy.yourcompany.org");
systemProperties.setProperty("http.proxyPort","8080");
out = new BufferedOutputStream(
new FileOutputStream(localFileName));
conn = url.openConnection();
in = conn.getInputStream();
byte[] buffer = new byte[1024];
int numRead;
long numWritten = 0;
while ((numRead = in.read(buffer)) != -1) {
out.write(buffer, 0, numRead);
numWritten += numRead;
}
System.out.println(localFileName + "\t" + numWritten);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (in != null) {
in.close();
}
if (out != null) {
out.close();
}
} catch (IOException ioe) {
}
}
}
public static void main(String[] args) {
try{
getImageURLs(args[0],args[1]);
} catch (Exception e) { System.out.println("An error has occurred!!!"); }
} // End of main
}
EXAMPLE COMPILE AND RUN:
C:\>javac getImages.java
C:\>java getImages http://www.mrjameswright.com/ pics.php
show_ads.js 7080
paypald.gif 857
logo_mrjw.gif 1179
shoponline.gif 2151
TopNav.js 5502
menu_com.js 22962
karDesk.jpg 12186
karDesk.jpg 12186
demonhunter.jpg 29451
demonhunter.jpg 29451
swe.jpg 64249
swe.jpg 64249
AmandaK.jpg 29432
AmandaK.jpg 29432
sixflag.jpg 34671
sixflag.jpg 34671
goat.jpg 27268
goat.jpg 27268
ORNL.jpg 23542
ORNL.jpg 23542
escort.jpg 16411
escort.jpg 16411
karo2.jpg 15152
karo2.jpg 15152
JamesK.jpg 30048
JamesK.jpg 30048
jamesPurple.jpg 16716
jamesPurple.jpg 16716
kendrick.jpg 10760
kendrick.jpg 10760
horse.jpg 32182
horse.jpg 32182
Mr_Bunny.jpg 22599
Mr_Bunny.jpg 22599
curtis.jpg 19158
curtis.jpg 19158
jamesskytel2.gif 38485
C:\>
NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.