HttpURLConnection抓取数据
来源:互联网 发布:交友网站 知乎 编辑:程序博客网 时间:2024/05/29 17:08
当页面中的数据为json格式时可以采取这种方法
public void yjStep(){
URL url;
int num=0;
for (int i = 1; i <=page; i++) {
try {
url = new URL("这里为你要访问的链接 ");
String data="action=010102¶m={\"PageNo\":\""+i+"\",\"Sjbm\":\"430000\",\"Qymc\":\"\"}";
byte[] postDataBytes = data.getBytes("UTF-8");
int len = postDataBytes.length;
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Accept","application/json, text/javascript, */*; q=0.01");
conn.setRequestProperty("Accept-Encoding","gzip, deflate");
conn.setRequestProperty("Accept-Language","zh-CN,zh;q=0.8");
conn.setRequestProperty("Cache-Control","no-cache");
conn.setRequestProperty("Connection","keep-alive");
conn.setRequestProperty("Content-Length", String.valueOf(postDataBytes.length));
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
conn.setRequestProperty("Host","jzsgl.coc.gov.cn");
conn.setRequestProperty("Origin","http://jzsgl.coc.gov.cn");
conn.setRequestProperty("Pragma","no-cache");
conn.setRequestProperty("Referer","http://jzsgl.coc.gov.cn/archisearch/cxyjjzs/qylist.aspx?sjbm=430000");
conn.setRequestProperty("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.134 Safari/537.36");
conn.setRequestProperty("X-Requested-With","XMLHttpRequest");
//conn.setRequestProperty("X_REQUESTED_WITH","XMLHttpRequest");
conn.setDoOutput(true);
conn.getOutputStream().write(data.getBytes());
//conn.getOutputStream().flush();
Reader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
BufferedReader r = new BufferedReader(in);
StringBuilder b = new StringBuilder();
String line;
while((line=r.readLine())!=null) {
b.append(line);
b.append("\r\n");
}
String st = b.toString();
ObjectMapper mapper = new ObjectMapper();
mapper.setPropertyNamingStrategy(PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES);
JsonNode node=mapper.readValue(st,JsonNode.class);
JsonNode xx=node.findPath("Data");
page=Integer.parseInt(node.findPath("PagerInfo").findValue("pagecount").asText().toString());
for (int j = 0; j < xx.size(); j++) {
String sjbm = xx.get(j).findValue("sjbm").asText();
String qymc = xx.get(j).findValue("qymc").asText();
String zclb = "00";
int count00 = Integer.parseInt(xx.get(j).findValue("count00").asText());
if(count00 >0){
List<Map<String,Object>> list = show(sjbm, qymc, zclb);
num += list.size();
System.out.println(list.size()+"==================");
}
}
System.out.println("------------------第"+i+"页------------------------------");
} catch (Exception e) {
e.printStackTrace();
continue;
}
System.out.println(num+"------------end-------------");
}
}
- HttpURLConnection抓取数据
- 【 网络爬虫】java 使用Socket, HttpUrlConnection方式抓取数据
- 断点续传,HttpURLConnection ,报文抓取
- 通过HttpURLConnection抓取图片
- 利用HttpURLConnection抓取网页取名
- 用HttpUrlConnection抓取网页内容
- 用HttpUrlConnection抓取网页内容
- 用HttpUrlConnection抓取网页内容
- java 高级应用----HttpURLConnection + Pattern----抓取网站分页文本数据+简单整理
- 数据抓取
- 数据抓取
- 抓取数据
- 抓取数据
- android网络HttpURLConnection抓取网络图片
- 使用HttpUrlConnection发送数据
- 使用HttpURLConnection发送数据
- HttpURLConnection加载数据
- HttpURLconnection上传数据
- ALIGN_SIZE宏解释
- VS2013中的属性
- 探讨iOS开发中各种锁
- 回调函数理解
- (十三)中介者模式详解(玄幻版)
- HttpURLConnection抓取数据
- 安卓开发,listView相关(二),适配器
- 深度学习SSD学习记录
- Grade for Android(从 Gradle 和 AS 开始)
- 项目开发中的个人总结
- 安卓自定义View-Canvas之画布操作
- 命令模式
- Java:对象的强、软、弱和虚引用
- 均衡负载--浅析