java网页抓取问题

在这个网站中:http://wwwapps.ups.com/WebTracking/track?HTMLVersion=5.0&loc=zh_CN&Requester=UPSHome&WBPM_lid=homepage%2Fct1.html_pnl_trk&trackNums=H8947154378&track.x=%E8%BF%BD%E8%B8%AA

  需要抓取:页面中的运输进程的部分 该运输进程 查看源码为一个div层 (

) 点击层厚URL地址改变为:http://wwwapps.ups.com/WebTracking/detail 因为抓取的信息需要 第一个链接中的H8947154378 参数 所以URL改变后就不知道怎么抓取了

  通过普通抓取 只能抓取到 层中的第一条数据和最后一条数据 火狐和其他浏览器查看第一个页面的源码也只有div中第一条数据和最后一条
  public String getPageContent(String strUrl, String strPostRequest,int maxLength) {

  // 读取结果网页
  StringBuffer buffer = new StringBuffer();
  System.setProperty("sun.net.client.defaultConnectTimeout", "5000");
  System.setProperty("sun.net.client.defaultReadTimeout", "5000");
  try {
  URL newUrl = new URL(strUrl);
  HttpURLConnection hConnect = (HttpURLConnection) newUrl.openConnection();
  // POST方式的额外数据
  if (strPostRequest.length() > 0) {
  hConnect.setDoOutput(true);
  OutputStreamWriter out = new OutputStreamWriter(hConnect.getOutputStream());
  out.write(strPostRequest);
  out.flush();
  out.close();
  }
  // 读取内容

  BufferedReader rd = new BufferedReader(new InputStreamReader(hConnect.getInputStream(),"utf-8"));
  int ch;
  for (int length = 0; (ch = rd.read()) > -1 && (maxLength <= 0 || length < maxLength); length++)
  buffer.append((char) ch);
  String s = buffer.toString();
  s.replaceAll("//&[a-zA-Z]{1,10};", "").replaceAll("<[^>]*>", "");
  System.out.println(s);

  rd.close();
  hConnect.disconnect();
  return buffer.toString().trim();
  } catch (Exception e) {
  return "错误:读取网页失败!";
  //

  }
  }
  public static void main(String[] args) {

  String url = "http://wwwapps.ups.com/WebTracking/track?HTMLVersion=5.0&loc=zh_CN&Requester=UPSHome&WBPM_lid=homepage%2Fct1.html_pnl_trk&trackNums=H8947154378&track.x=%E8%BF%BD%E8%B8%AA";

  String url2 = "http://wwwapps.ups.com/WebTracking/detail";

  Test p = new Test();
  p.getPageContent(url, "post", 100500);

  Test3 p3 = new Test3();
  p3.getPageContent(url2, "post", 100500);
  System.out.print("已经执行!");
  }
  上面是我写的普通抓取办法 
  想请教大家 是否有其他解决办法 没有公开的API接口


SMILET
浏览 407回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java