java抓取网页数据(java抓取网站数据假设你需要获取51job人才(组图))

优采云 发布时间: 2021-11-08 13:08

  java抓取网页数据(java抓取网站数据假设你需要获取51job人才(组图))

  Java 抓取 网站 数据。假设你需要在网上获取51job人才和java人才数量。首先需要分析51job网站的搜索是如何工作的。通过对网页源代码的分析,我们发现收录以下信息: 1. 搜索时页面请求的URL为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&Funtype=%&btn 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模式;/** * 需要获取资源的目标地址,不收录查询字符串*/私有字符串目标;/** * get请求的查询字符串,或者post请求的请求数据*/ private String queryData = ""; /** * 请求方法,获取/发布 */ 私有字符串方法 = "GET"; /** * 返回数据的编码类型*/ private String charset = "GBK"; /** * 捕获数据的模式,数据列表会根据模式的分组返回*/ private String模式;以下是抓取内容的代码:view plaincopy to clipboardprint? // 假设下面代码中的res对象封装了所有的请求信息。/** * 捕获数据的模式,数据列表会根据模式的分组返回*/ private String模式;以下是抓取内容的代码:view plaincopy to clipboardprint? // 假设下面代码中的res对象封装了所有的请求信息。/** * 捕获数据的模式,数据列表会根据模式的分组返回*/ private String模式;以下是抓取内容的代码:view plaincopy to clipboardprint? // 假设下面代码中的res对象封装了所有的请求信息。

  //URL指向目的地。//res.getTarget 返回目标地址,当是get请求时,这个地址收录查询字符串 URL url = new URL(res.getTarget()); HttpURLConnection con = (HttpURLConnection) url.openConnection(); //建立到目的地的连接 con.setRequestMethod(res.getMethod()); // 设置请求方法 // 设置HTTP请求头信息 con.setRequestProperty("accept", "*/*"); con.setRequestProperty("连接","保持活动"); con.setRequestProperty("user-agent", "Mozilla/4.0 (兼容; MSIE 6.0; Windows NT 5.1; SV1)"); con。 setDoInput(true); 如果 (res.g

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线