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

优采云 发布时间: 2021-11-24 02:11

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

  Java 抓取 网站 数据。假设你需要在网上获取51job人才和java人才数量。首先需要分析51job网站的搜索是如何工作的。通过对网页源代码的分析,我们发现提供了如下信息: 1. 页面搜索时请求的 URL 是请求使用的方法: POST3. 页面的编码格式返回为:GBK4. 假设我们要获取搜索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&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 for 5th 我们不在乎栏里的数据到底是什么服务器需要,然后将其全部发送。

  我们定义了 Resource 类。该类封装了与请求相关的所有信息。Resource收录如下属性: viewplaincopytoclipboardprint?/***需要获取的资源的目标地址,不包括查询字符串*/privateStringtarget;/***请求查询字符串时获取,或者post请求时获取数据* /privateStringqueryData="";/***请求方法,get/post*/privateStringmethod="GET";/***返回数据的编码类型*/privateStringcharset="GBK";/***捕获数据的方式data会按照mode的分组返回数据列表*/privateStringpattern;/***需要获取资源的目标地址,不包括查询字符串*/privateStringtarget;/***get request时间查询字符串, 或请求post请求数据*/privateStringqueryData="";/***请求方法,get/post*/privateStringmethod="GET";/***返回数据的编码类型*/privateStringcharset="GBK";/* ** 捕获数据的模式,数据列表会根据模式的分组返回*/privateStringpattern;下面是抓取内容的代码: viewplaincopytoclipboardprint?//假设下面代码中的res对象封装了所有的请求信息。

  //URL指向目的地。//res.getTarget返回目标地址,当是get请求时,这个地址收录查询字符串URLurl=newURL(res.getTarget());HttpURLConnectioncon=(HttpURLConnection)url.openConnection();/ /Established to Destination connection con.setRequestMethod(res.getMethod());//设置请求方法//设置HTTP请求头信息 con.setRequestProperty("accept","*/*");con.setRequestProperty(" connection","Keep-Alive");con.setRequestProperty("user-agent","Mozilla/4.patible;MSIE6.0;WindowsNT5.1;SV1) ");con.setDoInput(true);if(res.getMethod().equals("POST")){//如果是Post请求,则发送请求数据 con.setDoOutput(true);con. getOutputStream().write (res.

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线