1、方案选择:

  1.1、HttpClient库 获取 原始的 json数据

  1.2、JSON库 取得 我们需要的HTML内容

  1.3、使用 jsoup 解析 我们取得的HTML内容

2、不直接使用 jsoup,原因:

  2.1、它会自动补全 HTML的头和尾(<html/><body/>等),jsoup中没有这个

    处理方法:手动指定 Parser.xmlParser()

  2.2、如果属性 没有用 2个双引号包裹起来,它会将 这2个双引号补全... 这个功能 在jsoup里面没法关闭...

3、示例代码:

  3.1、工具类

package z_utils;

import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils; public class TzHttpClient
{
public static void main(String[] args) throws Exception
{
String strRtn = PostZ(
"http://ajax.mianbao99.com/vod-showlist-id-8-order-time-c-3719-p-2.html",
null,
true);
System.out.println(strRtn);
} // *** @SuppressWarnings("deprecation")
public static String PostZ(String _strUrl, String _strParam, boolean _bNeedResponse) throws Exception
{
//post请求返回结果
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost method = new HttpPost(_strUrl);
if (null != _strParam)
{
//解决中文乱码问题
StringEntity entity = new StringEntity(_strParam, "utf-8");
entity.setContentEncoding("UTF-8");
entity.setContentType("application/json");
method.setEntity(entity);
}
HttpResponse result = httpClient.execute(method);
/**请求发送成功,并得到响应**/
if (result.getStatusLine().getStatusCode() == 200)
{
if (! _bNeedResponse)
return null;
String str = EntityUtils.toString(result.getEntity());
//System.out.println(str);
return str;
}
return null;
} @SuppressWarnings("deprecation")
public static String GetZ(String _strUrl) throws Exception
{
DefaultHttpClient client = new DefaultHttpClient();
//发送get请求
HttpGet request = new HttpGet(_strUrl);
HttpResponse response = client.execute(request); /**请求发送成功,并得到响应**/
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK)
{
/**读取服务器返回过来的json字符串数据**/
String strResult = EntityUtils.toString(response.getEntity());
//System.out.println(strResult);
return strResult;
}
System.out.println("get请求提交失败:" + _strUrl);
return null;
}
}

  3.2、测试 功能代码

package test;

import org.jsoup.Connection;
///import org.jsoup.Connection;
import org.jsoup.Jsoup;
import org.jsoup.nodes.*;
import org.jsoup.parser.Parser; import net.sf.json.*;
import z_utils.TzHttpClient; public class Ttest01
{
public static void main(String[] args) throws Exception
{
String strHtml = TzHttpClient.GetZ("http://ajax.mianbao99.com/vod-showlist-id-8-order-time-c-3719-p-2.html");
JSONObject jsoupObj = JSONObject.fromObject(strHtml);
if (! jsoupObj.containsKey("ajaxtxt"))
return; // Connection conn = null;
// conn.parser(Parser.xmlParser());
String strAjaxtxt = jsoupObj.getString("ajaxtxt");
Document doc = Jsoup.parse(strAjaxtxt, "", Parser.xmlParser());
System.out.println(doc.html());
} }

4、

最新文章

  1. Java的内存分配
  2. DarkStone - 跨平台移动应用开发之 Flex 的崛起
  3. 支撑双十一的,不仅仅是AliSQL,也不仅仅是Oceanbase
  4. 使用Autodesk Vault插件向导轻松创建Vault插件
  5. Javascript中的循环变量声明,到底应该放在哪儿?
  6. 企业项目如何打包成.ipa文件
  7. JS参数传值
  8. CTO俱乐部下午茶:技术团队管理中的那些事儿
  9. Java 继承详解
  10. Winform- 界面开发之布局控件&quot;WeifenLuo.WinFormsUI.Docking&quot;的使用
  11. CUDA学习ing..
  12. axis1.4开发webservice服务端(快速入门)-基于jdk1.4
  13. [转]如何监测谁用了SQL Server的Tempdb空间
  14. bzoj:1687;poj 2434:[Usaco2005 Open]Navigating the City 城市交通
  15. 用virtualenv建立多个Python独立开发环境
  16. PHP基础(命名错误)错误导致的500
  17. B-Tree 和 B+Tree
  18. HTML标签参考(一)
  19. tcp网络通信的三次握手与三次挥手
  20. POJ 1185 炮兵阵地(状压DP)题解

热门文章

  1. delphi -----TListView的用法
  2. 关于ajax里边不能识别$(this)的解决方法
  3. Commit message 的写法规范。本文介绍Angular 规范(
  4. 转+总结!! 关于jsp页面取值方式
  5. Tickets---hdu1260(简单dp)
  6. Ionic的下拉框在手机上点击无效
  7. Linux入门之运维(1) 系统监控 vmstat top
  8. OVN实战---《An Introduction to OVN Routing》翻译
  9. sql 使用select 生成json
  10. Angular4中常用管道(转载)