当前访客身份:游客 [ 登录 | 加入开源中国 ]

代码分享

当前位置:
代码分享 » Java  » 网络编程
分享到: 
收藏 +0
0
Java爬虫的底层获取模块,构造POC和漏洞检测时常用爬虫抓取或发送测试代码查询目标站点的可疑bug
标签: <无>

代码片段(1) [全屏查看所有代码]

1. [代码][Java]代码     跳至 [1] [全屏预览]

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.net.URLConnection;
import java.net.URL;

public class Test {
public static void main(String[] args) {
getHtml("http://www.baidu.com");
}

/**
* 保存文件
*
* @param name
* 文件名
* @param Lname
* 后缀名
* @param data
* 数据buffer
* @return boolean Tuue则保存成功False则保存失败
*/
public static boolean save(String name, String Lname, String data) {
// 构造文件名
File html = new File("./" + name + "." + Lname);
try {
// 如果该文件存在则新建一个
if (!html.exists()) {
// 新建文件
html.createNewFile();
}
// 通过绝对路径打开一个文件写入
FileWriter fw = new FileWriter(html.getAbsoluteFile());
// 将buffer内容写入到文件中
BufferedWriter bw = new BufferedWriter(fw);
// 写入buffer的数据
bw.write(data);
// 关闭文件读写
bw.close();
return true;
} catch (Exception e) {
return false;
}

}

/**
* 爬取目标源代码
*
* @param target
* 目标URL
*/
public static String getHtml(String target) {
// 初始化返回字符串
String result = "";
// 初始化buffer
BufferedReader in = null;
try {
// 构造URL对象
URL url_address = new URL(target);
// 打开连接
URLConnection get_url = url_address.openConnection();
// 构造http连接头
get_url.setRequestProperty("accept", "*/*");
get_url.setRequestProperty("connection", "Keep-Alive");
get_url.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
// 连接
get_url.connect();
// 读取输出的buffer流
in = new BufferedReader(new InputStreamReader(get_url.getInputStream()));
// 初始化行
String line;
// 循环读取每一行
while ((line = in.readLine()) != null) {
// 构造返回字符串
result += "\n" + line;
}
// 输出返回字符串
System.out.println(result);
} catch (Exception e) {
// 抛出HTTP连接异常
e.printStackTrace();
} finally {
// 如果in读取到数据则关闭读写
if (in != null) {
try {
in.close();
} catch (Exception e2) {
// 抛出文件读写异常
e2.printStackTrace();
}
}
}
// 返回站点源代码
return result;
}
}


开源中国-程序员在线工具:Git代码托管 API文档大全(120+) JS在线编辑演示 二维码 更多»