java使用webmagic实现网络爬虫功能(二)

java使用webmagic实现网络爬虫功能(二)_第1张图片

这里需要爬的是上图的分页数据, 不同于之前的网页,这部分是通过ajax请求加载数据的,可以从浏览器内置的http抓包信息中找到符合要求的post请求,如下

java使用webmagic实现网络爬虫功能(二)_第2张图片

点击进去查看头文件信息,可以看到具体请求的地址与参数,

java使用webmagic实现网络爬虫功能(二)_第3张图片java使用webmagic实现网络爬虫功能(二)_第4张图片

参数的意义可以通过不停发起请求来推测出来,尝试发起请求返回数据为xml格式的数据,如下

java使用webmagic实现网络爬虫功能(二)_第5张图片

那么我们只需要解析xml来获得自己需要的数据即可,xml的解析不作详细解释,具体见java代码:

//获取列表页新闻   分页
	/*
	 * page 第几页新闻列表
	 * perpage 分页系数 
	 * startrecord 第几条开始
	 * columnid 栏目id  56 政务信息  57 今日南浔 59 视频南浔  。。。
	 */
	public void getListNews(){
		long pageNum = getParaToLong("page",1L);
		List> data = new ArrayList>();
		long perpage = 3 ;      //perpage 每页多少数据*3系数   为1是 每页3条   2时  每页6条 。。。
		long startrecord = (pageNum-1)*perpage*3+1;  //哪条数据开始 
		int columnid = 56;  
		String url = "http://www.nanxun.gov.cn/module/jslib/jquery/jpage/dataproxy.jsp?";
		url +="startrecord="+startrecord;
		//url +="&endrecord=6"; 
		url +="&perpage="+perpage;    
		url +="&col=1&appid=1&webid=1&unitid=2024&webname=%E5%8D%97%E6%B5%94%E5%8C%BA%E6%94%BF%E5%BA%9C";
		url +="&columnid="+columnid;
		String content = HttpKit.get(url);
		JSON json = JsonKit.convertXmlToJson(content, null);
        JSONObject jsonObject = JSONObject.fromObject(json);  
        if (jsonObject.has("recordset")) {
        	JSONArray transitListArray = jsonObject.getJSONArray("recordset");
        	for (int i = 0; i < transitListArray.size(); i++) {
        		Map innerMap = new HashMap();
        		String obj = transitListArray.get(i)+"";
        		//System.out.println(obj);
        		Html html = new Html(obj);
    			List urlList = html.$("table a", "href").all();
    			if(urlList.size()>0){
    				innerMap.put("url", urlList.get(0));
    			}
    			String title = html.regex("(.*?)", 1).get();
    			innerMap.put("title", title);
    			String publishDate = html.regex("(.*?)", 1).get();
        		innerMap.put("publishDate", publishDate);
        		data.add(innerMap);
        	}
        }
		renderJson(data);
	}


可以看出可以根据page与startrecord 来自由控制爬第几页的数据,看看上面代码抓取来的数据


java使用webmagic实现网络爬虫功能(二)_第6张图片

java使用webmagic实现网络爬虫功能(二)_第7张图片

over,mark 一下给自己备忘。


你可能感兴趣的:(java,java,网络爬虫)