htmlclient 简单使用方法

1.一个根据动态页路径和编码格式获得html格式文本的方法源代码:

Java代码
   1. // 返回html代码  
   2.     public final static String getHtmlCode(String httpUrl, String ecode) {  
   3.         // 构造HttpClient的实例  
   4.         HttpClient httpClient = new HttpClient();  
   5.         // 创建GET方法的实例  
   6.         GetMethod getMethod = new GetMethod(httpUrl);  
   7.         // 使用系统提供的默认的恢复策略  
   8.         getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,  
   9.                 new DefaultHttpMethodRetryHandler());  
  10.         try {  
  11.             // 执行getMethod  
  12.             int statusCode = httpClient.executeMethod(getMethod);  
  13.             if (statusCode != HttpStatus.SC_OK) {  
  14.                 System.err.println("Method failed: "  
  15.                         + getMethod.getStatusLine());  
  16.             }  
  17.             // 读取内容  
  18.             byte[] responseBody = getMethod.getResponseBody();  
  19.             // 处理内容  
  20.             return new String(responseBody, ecode);  
  21.         } catch (HttpException e) {  
  22.             // 发生致命的异常,可能是协议不对或者返回的内容有问题  
  23.             System.out.println("Please check your provided http address!");  
  24.             e.printStackTrace();  
  25.         } catch (IOException e) {  
  26.             // 发生网络异常  
  27.             e.printStackTrace();  
  28.         } finally {  
  29.             // 释放连接  
  30.             getMethod.releaseConnection();  
  31.         }  
  32.         return null;  
  33.     }  
 2.将html文本写入一个文件中的方法(para1:保存文件名 para2:html文本内容)
   1. public final static void saveHtmlCode(String filePath, String htmlCode) {  
   2.         FileOutputStream fOut = null;  
   3.         OutputStreamWriter out = null;  
   4.         try {  
   5.             fOut = new FileOutputStream(filePath);  
   6.             out = new OutputStreamWriter(fOut, "UTF-8");  
   7.             out.write(htmlCode);  
   8.         } catch (Exception e) {  
   9.             e.printStackTrace();  
  10.         } finally {  
  11.             try {  
  12.                 out.flush();  
  13.             } catch (IOException e) {  
  14.                 e.printStackTrace();  
  15.             }  
  16.             try {  
  17.                 fOut.flush();  
  18.             } catch (IOException e) {  
  19.                 e.printStackTrace();  
  20.             }  
  21.             try {  
  22.                 out.close();  
  23.             } catch (IOException e) {  
  24.                 e.printStackTrace();  
  25.             }  
  26.             try {  
  27.                 fOut.close();  
  28.             } catch (IOException e) {  
  29.                 e.printStackTrace();  
  30.             }  
  31.         }  
  32.     }  
  3.下面是一段伪代码.根据当前时间现在c盘建立要保存文件的文件夹,然后保存文件
# public static void main(String[] args) {  
#         String msgSaveFile = countHtmlFilePath("c://", new Date()) + "/test.html";  
#         String messageHtmlCode = getHtmlCode("test.jsp", "UTF-8");  
#         saveHtmlCode(msgSaveFile, messageHtmlCode);  
#     }  
#       
#     // 获得存储文件的目录  
#     public final static String countHtmlFilePath(String url, Date date) {  
#         SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd-hh");  
#         String time = sim.format(date);  
#         String[] result = time.split("-");  
#         String year = result[0];  
#         String month = result[1];  
#         String day = result[2];  
#         String hour = result[3];   
#         // 首先判断是否有年文件夹  
#         MyFileFilter filter = new TestClass().new MyFileFilter(true);  
#         boolean isExists = filter.isExistsDirectory(url, year + "");  
#         if (isExists) {  
#             if(filter.isExistsDirectory(url + "/" + year, month + "")) {  
#                 if(filter.isExistsDirectory(url + "/" + year + "/" + month, day + "")) {  
#                     if(!filter.isExistsDirectory(url + "/" + year + "/" + month + "/" + hour, hour + "")) {  
#                         new File(url + "/" + year + "/" + month + "/" + day + "/" + hour).mkdir();  
#                     }  
#                 } else {  
#                     new File(url + "/" + year + "/" + month + "/" + day).mkdir();  
#                 }  
#             } else {  
#                 new File(url + "/" + year + "/" + month).mkdir();  
#             }  
#         } else {  
#             new File(url + "/" + year).mkdir();  
#             new File(url + "/" + year + "/" + month).mkdir();  
#             new File(url + "/" + year + "/" + month + "/" + day).mkdir();  
#             new File(url + "/" + year + "/" + month + "/" + day + "/" + hour).mkdir();  
#         }  
#         return url + "/" + year + "/" + month + "/" + day + "/" + hour;  
#     }  
#       
#   
#     class MyFileFilter implements java.io.FileFilter {  
#   
#         private boolean isDirectory;  
#   
#         public MyFileFilter(boolean isDir) {  
#             this.isDirectory = isDir;  
#         }  
#   
#         @Override  
#         public boolean accept(File f) {  
#             if (f.isDirectory() == isDirectory) {  
#                 return true;  
#             } else  
#                 return false;  
#         }  
#           
#         public boolean isExistsDirectory(String path, String dir) {  
#             File file = new File(path);  
#             File[] childFiles = file.listFiles(this);  
#             for (File cFile : childFiles) {  
#                 if(cFile.equals(dir)) {  
#                     return true;  
#                 }  
#             }  
#             return false;  
#         }  
#     } 
 
使用httpClient组件解析html并解决字符编码 使用httpclient 3.0解析html,实际使用当中遇到的字符集编码乱码问题,主要用于网页的信息采集,此外还列出一部分截取字符串的方法,带源码 httpclient3.0 自己下载jar包 立即下载

相关推荐

Matlab2024a安装教程

点击【下一步】。8.选择解压后的【MATLAB R2024a(64bit)】文件夹中【Crack】文件夹下的【licese.lic】,点击【打开】。

qq_64359046的博客 4828

html中易混淆的offset、client、scroll

上来不说话,先抛出几个问题: offsetWidth offsetHeight offsetLeft offsetTop clientWidth clientHeight clientLeft clientTop scrollWidth scrollHeight scrollLeft scrollTop 是时候谈谈它们之间的区别了,是不是已经混乱了?好吧,一步一步来搞清楚这些东西是啥。 ...

jinliyixi的博客 2328

告别TI官网迷路!手把手教你用C2000Ware为TMS320F28027搭建Proteus仿真工程模板

本文详细指导如何使用C2000Ware为TMS320F28027搭建Proteus仿真工程模板,帮助DSP开发者快速上手。从资源获取、工程目录设计到关键文件配置,再到CCS与Proteus的联调技巧,全面解析仿真工程搭建的每个步骤,特别适合初学者和工程师参考。

weixin_42715608的博客 473

java htmlcleaner_HttpClient4.0&HtmlCleaner用法

**************************HttpClient4.0用法*****************************1、初始化HttpParams,设置组件参数//HttpParams接口代表一个不可改变值的集合,定义一个组件运行时行为。代表一个对象集合,该集合是一个键到值的映射。//HttpParams作用是定义其他组件的行为,一般每个复杂的组件都有它自己的HttpPar...

weixin_33117093的博客 261

Unity2020 发布Android包,下载安装配置JDK、SDK、NDK详细教程

配置成功页面 JDK、SDK、NDK

qq_41263535的博客 1万+

12.工具高级参数CogCalibNPointToNPointTool

CogCalibNPointToNPointTool是一种多点2D坐标校正工具,用于将图像像素坐标转换为物理世界坐标。该工具通过两组点(图像坐标点和物理坐标点)计算最佳转换关系,并将结果保存供后续使用。操作步骤包括获取图像、添加坐标点对、计算转换参数。校正结果会显示平移、缩放、旋转等参数及RMS误差值,较大的误差可能表明点位置不准确或自由度不足。该工具广泛应用于机器视觉领域,通过9点标定等案例可验证坐标转换的准确性并优化参数设置。

204

html client,offset和scroll

在html中,任何一个元素都有三个表示位置和大小的对象:client,offset和scroll,每个对象都有相应的height,width,top,left属性,那么这些究竟有什么区别呢? client属性是指一个元素直接可以看得到不包括边框的区域,所谓的直接可以看得到不包括边框是这样的概念:不包括滚动条占据的空间(实际上,如果出现了滚动条,元素的高度不会发生变化,clientHeig...

ppju 256

[QMT和ptrade量化交易小白入门]-122、基于聚类分析的动态股票池构建与ETF轮动策略,回测年化 132.09%

本专栏主要是介绍QMT和ptrade的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写200篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。

木头大左的博客 1029

htmlclient

1.一个根据动态页路径和编码格式获得html格式文本的方法源代码: Java代码 1. // 返回html代码 2. public final static String getHtmlCode(String httpUrl, String ecode) { 3. // 构造HttpClient的实例 4. HttpCl...

zhykhs的专栏 204

nvidia系列教程-AGX-Orin linux源码下载编译

NVIDIA AGX Orin 是一款高性能的嵌入式计算平台,广泛应用于人工智能、自动驾驶、机器人等领域。为 AGX Orin 编译定制的 Linux 内核,可以更好地适应特定应用需求,增强系统的灵活性。本文将详细介绍如何下载、配置和编译适用于 AGX Orin 的 Linux 内核源码。本文介绍了如何为 NVIDIA AGX Orin 平台下载、配置和编译定制的 Linux 内核源码。通过编译和部署定制内核,您可以更好地控制系统的行为,并根据特定应用需求进行优化。

flypig has a dream! 1283

2024年广东省职业院校技能大赛“区块链技术应用”任务书—区块链应用系统开发参考答案

摘要 本文档提供了2024年广东省职业院校技能大赛"区块链技术应用"项目中区块链电子签章前端功能开发的参考答案。主要内容包括:1)注册页面开发,实现身份证号码双向绑定和注册请求发送;2)登录页面开发,实现用户认证、状态保存和页面跳转;3)个人印章页面开发,实现注销功能和印章信息展示。每个任务均包含具体实现代码片段和功能测试要点,涵盖Vue.js框架下的数据绑定、axios请求处理和本地存储等关键技术点。

我是网络安全兼技能大赛工程师,专注网络安全技术学习与技能大赛实战!持续分享最新的技术文章,帮你少走弯路,一起在技术赛道上进步~ 346

利用HtmlClient生成静态页面

直接上代码   发布新闻方法:   @Action(value = "publisNews", results = { @Result(name = "toBrowseNews", type = "redirectAction", location = "newsQuery") }) /** 发布指定新闻 */ public String publisNews() thro

Johnny Huang的博客 3722

Electron - Electron failed to install correctly, please delete node_modules/electron and try install

Electron安装失败:Electron failed to install correctly, please delete node_modules/electron and try installing again,electron安装报错:Electron failed to install correctly...解决方案,Electron 未能正确安装,请删除 node_modules/electron,然后再次尝试安装,如何解决这个问题,手把手教你解决,在yarn dev时报错,electr

🏆 前端领域优质创作者 4368

HtmlClient支持AJAX

WebClient webClient = new WebClient(BrowserVersion.INTERNET_EXPLORER_6);   在生成WEBCLIENT对象后为其指定AJAX控制器(系统自带的),然后设置等待时间模拟用户操作情况 webClient.setAjaxController(new NicelyResynchronizingAjaxController());...

翼づ坏坏的天空 182

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

htmlpraser,htmlclient,java线程池

资讯抓取总结 1. HtmlParser简介 HtmlParser是一个纯java写的html解析类库,它不依赖其它的java库文件,主要用于改造或提取html,HtmlParser主要靠Node和Tag来表达Html (1)、Node是形成树结构表示HTML的基础,所有的数据表示都是接口Node的实现Node定义了与页面树结构所表达的页面Page对象,定义了获取父、子、兄弟节点...

shezhen12345的博客 219

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

苍穹外卖 HtmlClient测试

苍穹外卖 HtmlClient测试

Aishangyuwen的博客 298

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

线程池+jsoup+htmlclient实现微博超话社区自动签到

java线程池+jsoup+htmlunit实现微博超话社区自动签到 这是个半夜闲没事写的一个爬虫,所以很多命名可能有点不大好,哈哈,请见谅,程序能运行就行????毕竟也只是闲没事摸个鱼写写的,其实里面也有很多东西可以优化的,不过。。。。。。大半夜的,优化个球球,运行完赶紧睡觉去喽 还有一点忘记说了,其实里面只需要用到 java线程池 + jsoup就可以了,只不过以为可能需要用到htmlunit所以才搞上这玩意的 先上个线程池工具类: /** * 线程池工具类 */ public class Pool

梦染 * 星尘 的博客 1497

SpringBoot实现Netty使用Protobuf协议完成Websocket通信

非常详细介绍如何在SpringBoot环境下使用Netty实现Websocket,并引入protobuf数据协议

yangjiaaiLM的博客 2285

网络爬虫(五)------------简单网络爬虫实现代码,记得要添加htmlpaser和htmlclient两个包

代码奉上,

我们都在不断努力 597

使用HttpClient做的一个简单的网络爬虫

我们有时要想把一个网站下一些有用的信息copy下来,比如下面的例子:想把http://www.ef360.com这个网站下所有的制衣企业拿下来并保存在自己的excel文件中,一个一个copy?受不了,那该怎么办呢?看下面基本源码 import java.io.IOException; import java.util.ArrayList; import java.util.HashMap;

gundumw100的专栏 524

利用HttpClient和HtmlParser构造简单爬虫

/** * 爬虫主方法入口类 * @author Qing * */ public class Clawler { /** * 用种子url初始化url队列 * @param seeds */ private void initCrawlerWithSeeds(String[] seeds){ for(int i = 0; i < seeds.length; i +

Q1n6 1086

java简单实现模拟登陆_用httpclient实现简单的模拟登陆

--%>//编码,解决中文乱码//String str = URLEncoder.encode(request.getParameter("name"),"utf-8");//设置 name 和 url cookieHttpClient httpClient= newDefaultHttpClient();//RequestConfig requestConfig = RequestCon...

weixin_32321921的博客 315

java实现简单爬虫(httpclient+htmlparser)

  该程序需要提供一个种子(一个URl地址)作为其实页面,通过分析该页面,将页面上涉及到的url地址爬取到,从而理论上实现爬虫的原来。   先用一个图来说明该程序的工作流程      在这个程序中存在俩个数据结构,一个是一个队列,该队列存放的是带分析的url,称作UrlQueue.另外一个是一个hashset,该数据结构是存放已经访问过的url。一个url从urlQueue中出队,通过判断看...

weixin_30555515的博客 147

java HttpClient的使用详解

HttpClient简介 HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。虽然在 JDK 的 java.net 包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。HttpClient 是 Apache Jakarta Common ...

鑫鑫吖的博客 5万+
上一篇: JAVA中注解随笔
下一篇: 在Java代码中获得WebRoot的物理路径
zhykhs
博客等级 码龄19年 3粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值