php可以抓取网页数据吗(java抓取网站数据假设你需要获取51人才网上java人才的需求数量(组图))

优采云 发布时间: 2021-12-19 23:21

  php可以抓取网页数据吗(java抓取网站数据假设你需要获取51人才网上java人才的需求数量(组图))

  文件介绍:

  java捕获网站数据

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

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

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

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

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

  4. 假设我们在搜索java人才时想要获取结果页面显示的需求数量,发现数量在返回的

  在 HTML 数据中的这样一段代码中:

  1-30 / 14794

  , 所以我们可以得到这样一个

  mode:".+1-\d+ / (\d+).+",第一组的内容就是我们最终需要的数据,关于java中的mode,

  请参考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包括以下属性:

  查看普通副本到剪贴板打印?

  /**

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

  */

  私有字符串目标;

  /**

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

  */

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

  /**

  * 请求方法,获取/发布

  */

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

  /**

  * 返回数据的编码类型

  */

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

  /**

  * 捕获数据的模式,根据模式分组返回数据列表

  */

  私有字符串模式;

  /**

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

  */

  私有字符串目标;

  /**

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

  */

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

  /**

  * 请求方法,获取/发布

  */

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

  /**

  * 返回数据的编码类型

  */

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

  /**

  * 捕获数据的模式,根据模式分组返回数据列表

  */

  私有字符串模式;

  以下是抓取内容的代码:

  查看普通副本到剪贴板打印?

  //假设下面代码中的res对象封装了所有的请求信息。

  //URL指向目的地。

  //res.getTarget 返回目标地址,当是get请求时,这个地址收录查询字符串的信息

  URL url = 新 URL(res.getTarget());

  HttpURLConnection con = (HttpURLConnection) url.openConnection(); //建立到目的地的连接

  con.setRequestMethod(res.getMethod()); //设置请求的方法

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线