1 / 17
文档名称:

java抓取网站数据.doc.doc

格式:doc   页数:17页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

java抓取网站数据.doc.doc

上传人:gumumeiying 2016/3/15 文件大小:0 KB

下载得到文件列表

java抓取网站数据.doc.doc

相关文档

文档介绍

文档介绍:java 抓取网站数据假设你需要获取 51job 人才网上 java 人才的需求数量,首先你需要分析 51job 网站的搜索这一块是怎么运作的,通过解析网页的源代码,我们发现了以下一些信息: 1. 搜索时页面请求的 URL 是 http://search./jobsearch/ 2. 请求所用的方法为: POST 3. 返回的页面的编码格式为: GBK 4. 假设我们想获取搜索 java 人才时结果页面中显示的需求数量, 我们发现数量位于返回的 HTML 数据中这样的一段代码之中: <td>1-30 / 14794</td> ,于是我们可以得到这样的一个模式: ".+1-\d+ / (\d+).+" , 第一个分组的内容就是我们需要的最终数据, 有关 java 中的模式, 请参考 java 文档中 Pattern 类的介绍 5. 另外做为 POST 请求,页面向服务器发送的数据如下( 这个很容易能过 prototype 这样的 js 框架抓取到, 参考我的其它博客介绍): lang=c&stype=1&postchannel=0000&fromType=1&line=&keywordtype=2&keyword=java&btnJ obarea=%E9%80%89%E6%8B%A9%E5%9C%B0%E5%8C%BA&jobarea=0000&image=&btn Funtype=%E9%80%89%E6%8B%A9%2F%E4%BF%AE%E6%94%B9&funtype=0000&btnInd ustrytype=%E9%80%89%E6%8B%A9%2F%E4%BF%AE%E6%94%B9&industrytype=00 对于第 5 条中的数据哪些是服务器真正需要的我们不管,全部发送过去就是了。有了这些准备,我们就可以真正开始通过 java 发送请求,并获得最终数据了。我们定义 Resource 类,这个类封装所有的与请求有关的信息, Resource 包括以下属性: view plaincopy to clipboardprint? /** * 需要获取资源的目标地址,不包含查询串*/ private String target; /** * get 请求时的查询串,或 post 请求的请求数据*/ private String queryData = ""; /** * 请求方式, get / post */ private String method = "GET"; /** * 返回的数据的编码类型*/ private String charset = "GBK"; /** * 抓取数据的模式,将根据模式的分组来返回数据列表*/ private String pattern; /** * 需要获取资源的目标地址,不包含查询串*/ private String target; /** * get 请求时的查询串,或 post 请求的请求数据*/ private String queryData = ""; /** * 请求方式, get / post */ private String method = "GET"; /** * 返回的数据的编码类型*/ private String charset = "GBK"; /** * 抓取数据的模式,将根据模式的分组来返回数据列表*/ private String pattern; 以下为抓取内容的代码: view plaincopy to clipboardprint? // 假设以下代码中 res 对象封装了所有的请求信息。//URL 指向目的地。// 返回目标地址,且当为 get 请求时,这个地址包含了查询串的信息 URL url = new URL(()); HttpURLConnection con = (HttpURLConnection) (); // 建立到目的地的联接 (()); // 设置请求的方法// 设置 HTTP 请求头信息 ("accept", "*/*"); ("connection", "Keep-Alive"); ("user-agent", "Mozilla/ (compatible; MSIE ; Windows NT ; SV1)"); (true); if (