[Java] 获取保存某一个网站的内容详解编程语言

以下代码可用于获取某一个链接的响应结果, 并将响应结果做简单的处理后, 存入文件中。

import java.io.BufferedReader; 
import java.io.BufferedWriter; 
import java.io.File; 
import java.io.FileWriter; 
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.io.OutputStreamWriter; 
import java.net.URL; 
import java.net.URLConnection; 
import java.util.Date; 
import java.util.List; 
import java.util.Map; 
import javax.print.attribute.standard.DateTimeAtCompleted; 
public class GetResponse { 
/** 
* 向指定URL发送GET方法的请求 
*  
* @param url 
*            发送请求的URL 
* @param param 
*            请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 
* @return URL 所代表远程资源的响应结果 
*/ 
public static String sendGet(String url, String param) { 
String result = ""; 
BufferedReader in = null; 
try { 
String urlNameString = url + "?" + param; 
System.out.println("读取响应:" + urlNameString); 
URL realUrl = new URL(urlNameString); 
// 打开和URL之间的连接 
URLConnection connection = realUrl.openConnection(); 
// 设置通用的请求属性 
connection.setRequestProperty("accept", "*/*"); 
connection.setRequestProperty("connection", "Keep-Alive"); 
connection.setRequestProperty("user-agent", 
"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.155 Safari/537.36"); 
// 建立实际的连接 
            connection.connect(); 
// 获取所有响应头字段 
Map<String, List<String>> map = connection.getHeaderFields(); 
// 遍历所有的响应头字段 
for (String key : map.keySet()) { 
System.out.println(key + "--->" + map.get(key)); 
} 
// 定义 BufferedReader输入流来读取URL的响应 
in = new BufferedReader(new InputStreamReader(connection.getInputStream())); 
String line; 
while ((line = in.readLine()) != null) { 
result += line; 
} 
} catch (Exception e) { 
System.out.println("发送GET请求出现异常!" + e); 
e.printStackTrace(); 
} 
// 使用finally块来关闭输入流 
finally { 
try { 
if (in != null) { 
in.close(); 
} 
} catch (Exception e2) { 
e2.printStackTrace(); 
} 
} 
return result; 
} 
public static void main(String[] args) { 
Date currenttime = new Date(); 
String url = "http://xxx.com"; 
String result = ""; 
for (int i = 0; i < 10; i++) { 
if (result.equals("")) { 
currenttime = new Date(); 
result = sendGet(url, currenttime.getTime() + ""); 
} 
} 
System.out.println(result); 
String[] result2 = result.split("="); 
System.out.println(result2[1]); 
System.out.println(); 
try { 
File file = new File("goldprice.txt"); 
// If file doesnt exists, then create it 
if (!file.exists()) { 
file.createNewFile(); 
} 
// true = append file 
FileWriter fileWritter = new FileWriter(file.getName(), true); 
BufferedWriter bufferWritter = new BufferedWriter(fileWritter); 
bufferWritter.write(currenttime + result2[2].replace("|", "/t")); 
bufferWritter.newLine(); 
bufferWritter.close(); 
System.out.println("Done"); 
} catch (IOException e) { 
e.printStackTrace(); 
} 
} 
}

将上面的代码保存为.java格式。 在command窗口下,运行:javac GetResponse.java, 生成.class文件。

建一个新的文件,将以下内容拷贝保存到文件中,并以.bat为后缀。执行该bat文件后, 执行的状态将会保存到main.log文件中。

java GetResponse > main.log 

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/17005.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论