[Java] 获取保存某一个网站的内容
Posted 飞雪天影
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[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
以上是关于[Java] 获取保存某一个网站的内容的主要内容,如果未能解决你的问题,请参考以下文章