欢迎来到天天文库
浏览记录
ID:6031840
大小:100.50 KB
页数:17页
时间:2017-12-31
《java 抓取网站数据》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、java抓取网站数据假设你需要获取51job人才网上java人才的需求数量,首先你需要分析51job网站的搜索这一块是怎么运作的,通过解析网页的源代码,我们发现了以下一些信息:1.搜索时页面请求的URL是http://search.51job.com/jobsearch/search_result.php2.请求所用的方法为:POST3.返回的页面的编码格式为:GBK4.假设我们想获取搜索java人才时结果页面中显示的需求数量,我们发现数量位于返回的HTML数据中这样的一段代码之中:
2、94
3、%E6%8B%A9%E5%9C%B0%E5%8C%BA&jobarea=0000&image=&btnFuntype=%E9%80%89%E6%8B%A9%2F%E4%BF%AE%E6%94%B9&funtype=0000&btnIndustrytype=%E9%80%89%E6%8B%A9%2F%E4%BF%AE%E6%94%B9&industrytype=00对于第5条中的数据哪些是服务器真正需要的我们不管,全部发送过去就是了。有了这些准备,我们就可以真正开始通过java发送请求,并获得最终数据了。我们
4、定义Resource类,这个类封装所有的与请求有关的信息,Resource包括以下属性:viewplaincopytoclipboardprint?/***需要获取资源的目标地址,不包含查询串*/privateStringtarget;/***get请求时的查询串,或post请求的请求数据*/privateStringqueryData="";/***请求方式,get/post*/privateStringmethod="GET";/***返回的数据的编码类型*/privateStringcharset="
5、GBK";/***抓取数据的模式,将根据模式的分组来返回数据列表*/privateStringpattern;/***需要获取资源的目标地址,不包含查询串*/privateStringtarget;/***get请求时的查询串,或post请求的请求数据*/privateStringqueryData="";/***请求方式,get/post*/privateStringmethod="GET";/***返回的数据的编码类型*/privateStringcharset="GBK";/***抓取数据的模式,将根
6、据模式的分组来返回数据列表*/privateStringpattern;以下为抓取内容的代码:viewplaincopytoclipboardprint?//假设以下代码中res对象封装了所有的请求信息。//URL指向目的地。//res.getTarget返回目标地址,且当为get请求时,这个地址包含了查询串的信息URLurl=newURL(res.getTarget());HttpURLConnectioncon=(HttpURLConnection)url.openConnection();//建立到目
7、的地的联接con.setRequestMethod(res.getMethod());//设置请求的方法//设置HTTP请求头信息con.setRequestProperty("accept","*/*");con.setRequestProperty("connection","Keep-Alive");con.setRequestProperty("user-agent","Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1)");con.setDoInput
8、(true);if(res.getMethod().equals("POST")){//如果为Post请求则发送请求数据con.setDoOutput(true);con.getOutputStream().write(res.getQueryData().getBytes());con.getOutputStream().flush();}//通过BufferedReader一行行的读取数据,如果你需要的是全部
此文档下载收益归作者所有