java从网页抓取数据(抓取你想要的网页数据假设你需要获取51人才的需求数量(组图))

优采云 发布时间: 2021-12-16 23:35

  java从网页抓取数据(抓取你想要的网页数据假设你需要获取51人才的需求数量(组图))

  抓取你想要的网页数据

  java捕获网站数据

  假设你需要在线获取51job人才在线java人才需求量,首先你需要分析51job网站搜索这个

  一件如何运作?通过对网页源代码的分析,我们发现了以下信息:

  1. 页面搜索时请求的网址为

  2. 请求使用的方法是:POST

  3. 返回页面的编码格式为:GBK

  4. 假设我们在搜索java人才时想要获取结果页面显示的需求数量,我们发现该数量在返回的HTML数据中的一段代码中:

  1-30 / 14794

  ,所以我们可以得到这样一个模式:“.+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 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包括以下属性:view plaincopy to clipboardprint?

  /**

  * 需要获取资源的目标地址,不收录查询字符串

  */

  私有字符串目标;

  /**

  * get请求的查询字符串,或者post请求的请求数据

  */

  私人字符串查询数据 = "";

  /**

  * 请求方法,获取/发布

  */

  私有字符串方法 = "GET";

  /**

  * 返回数据的编码类型

  */

  私人字符串字符集 = "GBK";

  /**

  * 抓取数据的模式,会根据模式的分组返回数据列表

  */

  私有字符串模式;

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线