假设你需要获取51job人才网上java人才的需求数量,首先你需要分析51job网站的搜索这一块是怎么运作的,通过解析网页的源代码,我们发现了以下一些信息: 1. 搜索时页面请求的URL是 http://search.51job.com/jobsearch/search_result.php 2. 请求所用的方法为:POST 3. 返回的页面的编码格式为:GBK 4. 假设我们想获取搜索java人才时结果页面中显示的需求数量,我们发现数量位于返回的HTML数据中这样的一段代码之中:<td>1-30 / 14794</td>,于是我们可以得到这样的一个模式:".+1-\d+ / (\d+).+",第一个分组的内容就是我们需要的最终数据,有关java中的模式,请参考java文档中Pattern类的介绍 5. 另外做为POST请求,页面向服务器发送的数据如下(这个很容易能过prototype这样的js框架抓取到,参考我的其它博客介绍):lang=c& amp; amp;stype=1&postchannel=0000&fromType=1&line=&keywordtype=2&keyword=java&btnJobarea=%E9%80%89%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发送请求,并获得最终数据了。
我们定义Resource类,这个类封装所有的与请求有关的信息,Resource包括以下属性:
posts - 9, comments - 24, trackbacks - 0, articles - 0
Copyright © terryxue