81,092
社区成员
发帖
与我相关
我的任务
分享
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
PrintWriter pout = null;
BufferedReader pin = null;
String result = "";
try {
URL realUrl = new URL("http://jzsc.mohurd.gov.cn/dataservice/query/comp/list");
// 打开和URL之间的连接
URLConnection conn = realUrl.openConnection();
// 设置通用的请求属性
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
// 发送POST请求必须设置如下两行
conn.setDoOutput(true);
conn.setDoInput(true);
// 获取URLConnection对象对应的输出流
pout = new PrintWriter(conn.getOutputStream());
// 发送请求参数
//pout.print("complexname=杭州&$reload=0&$pg=3&$pgsz=15");
pout.print("complexname=杭州");
// flush输出流的缓冲
pout.flush();
// 定义BufferedReader输入流来读取URL的响应
pin = new BufferedReader(
new InputStreamReader(conn.getInputStream()));
String line;
boolean print = false;
StringBuilder sb = new StringBuilder("");
while ((line = pin.readLine()) != null) {
if(line.contains("<tbody")) {
print = true;
continue;
}
if(print) {
if(line.contains("<tr")||line.contains("</tr>")){
sb.append("\n"+line.replace("\t", ""));
} else {
sb.append(line.replace("\t", ""));
}
}
if(line.contains("</tbody")) {
break;
}
}
} catch (Exception e) {
pout.println("发送 POST 请求出现异常!"+e);
e.printStackTrace();
}
//使用finally块来关闭输出流、输入流
finally{
try{
if(pout != null){
pout.close();
}
if(pin != null){
pin.close();
}
}
catch(IOException ex){
ex.printStackTrace();
}
}
}
}
@Controller
public class TestController {
@RequestMapping("/data")
public String getData() {
//上述抓取数据的代码
}
}
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
...
</properties>