HtmlUnit是一款开源的java 页面分析工具,读取页面后,可以有效的使用HtmlUnit分析页面上的内容。项目可以模拟浏览器运行,被誉为java浏览器的开源实现。这个没有界面的浏览器,运行速度也是非常迅速的。(百度百科)
这玩意本来是用来做网页自动化测试的,不过后来似乎多用在爬虫项目。因为没有界面,所以运行速度可以。但是同样因为没有界面,我怎么知道运行结果怎么样,如果只有html还能勉强看看,要是用了JS什么的就直接抓瞎了。所以在试用了一番后我还是打算转投其他工具。
安装还是比较方便的,先从官网下载最新的版本(我当时最新的是2.18)。解压后有两个文件夹,一个里面有API的DOC,一个里面有所有需要的库,把整个文件夹的东西都拉进工程里就可以开始使用了。
贴个基本使用
// 创建webclient
WebClient webClient = new WebClient(BrowserVersion.CHROME);
// 获取搜索输入框并提交搜索内容
HtmlPage page1 = (HtmlPage)
webClient.getPage("http://www.baidu.com/");
HtmlInput input = (HtmlInput) page1.getHtmlElementById("kw");
System.out.println(input.toString());
input.setValueAttribute("HtmlUnit");
System.out.println(input.toString());
// 获取搜索按钮并点击
HtmlInput btnSearch = (HtmlInput) page1.getHtmlElementById("su");
HtmlPage page2 = btnSearch .click();
// 输出新页面的文本
System.out.println(page2.asXml());
简单解释下,首先创建个浏览器实例,可以模拟的浏览器有IE、FIREFOX和CHROME,输入URL获得页面,通过id找到页面上的各种元素,或者通过setValueAttribute模拟填写,或者通过click等模拟点击动作,最后可以通过asXml或者asText输出页面以检查结果。
基本上就是这么个东西,其他具体可以参考API。如果以后有机会使用的话会继续补充。
题目es6代码转es5代码的实现思路是什么?解释谈到es6代码转es5代码肯定想到的是babel,那么babel是如何实现转码的呢?解析(parse): 解析代码字符串,生成AST(抽象语法树)转换(transform):按一定的规则转换,修改AST生成(generate):将修改后的AST生成新的普通代码es6代码转es5代码就是这三个步骤。其中最关键的是AST(抽象语法树)..._es6 代码转成 es5 代码的实现思路是什么
IOS15瀑布流的使用项目设计的东西较多,自己拿去研究一下吧https://gitee.com/johnson__save_admin/water-flow-layout-demo
1.引用别人经典(语法)排版标记 ■ 框架概念 : 所谓框架便是网页画面分成几个框窗,同时取得多个 URL。只 要 即可,而所有框
1.下载tenginx安装包本例为tengine-2.1.0.tar.gz,地址为http://tengine.taobao.org/2.使用rz命令上传tenginx到centos73.解压tenginx 可以使用 tar -zxvf tengine-2.1.0.tar.gz(有过程) 也可以用 tar xf tengine-2.1.0.tar.gz(无过程)4.移动文件夹到你想要移动到的位置 mv tenginx-2.1.0 /opt/5.用yum源安装依赖gcc openssl-devel p_centos7安装tengine
1. freebsd 这个系统说实话 真的没有ubuntu 方便 ,要安装个软件, apt-get install 下就可以了,而在freebsd 下面只能在ports 下去装,但通常情况下总是没资源,坑啊所以只能自己 下包,自己装了 1. 首先下 mysql-5.1.70.tar.gztar -zxvf mysql-5.1.70.tar.gzcd mysql-_freebsd安装mysql8.0
装上Windows 7 RC之后还没来的急装Chrome,今天尝试了一下。安装很顺利但是没想到运行一会之后(大概15分钟)突然弹出了一个提示说浏览器崩溃是否提交问题并重启。点确定重启之后有死掉了。重复几次之后发现浏览器怎么也打不开了。 Google一把,终于被我找到了。貌似是因为插件的问题造成的。打开浏览器的快捷方式的属性窗口,在原有的目标项后增加一个参数: --in-proce_win7系统谷歌浏览器导出密码就蹦
流程图是每一个程序编制人员都应当熟练掌握的!只要规定好三种基本结构的流程图的画法,就可以画出任何算法的流程图!三种基本结构:1.顺序结构: 顺序结构是最简单的一种线性结构。 执行顺序: 执行完A后必定会执行B。2.选择结构: 此结构中必包含一个判断框!根据给定的条件是否成立而选择执行A框或者B框!..._画出使用传统流程国计算nl算法的流程国
问题给定两个字符,求两个字符串的最长公共子序列(不需要连续,只需要保持字符的相对位置)动态规划详解题解/** * @author IT00ZYQ * @date 2021/4/10 22:57 **/public class 最长公共子序列 { public static int way1(String str1, String str2) { if (str1 == null || str2 == null || str1.length() == 0 || _经典动态规划:最长公共子序列
##JUC包下类ReentrantLock-ReentrantReadWriteLock-CountDownLatch-LinkedBlockingQueue-Synchronized_juc的api原理
在多选表格中表头的选择框会有indeterminate属性,如NG-ZORRO中的table组件以下是官网源码,我将其分为html部分和逻辑控制部分。 <nz-table #rowSelectionTable [nzData]="data" (nzCurrentPageDataChange)="currentPageDataChange($event)" (nzPageIndexChange)="refreshStatus()" .
觉得有用的话,可以去github关注:https://github.com/justjavac/awesome-awesomeness-zh_CN一份关于“资料汇总”的汇总。通用free-programming-books-zh_CN 免费的计算机编程类中文书籍精彩博客集合 hacke2/hacke2.github.io#2ResumeSample 程序员简
最近应用开发的进程中出现了一个小问题,顺便记录一下原因和方法--输出信息 一、log4j.properties 用作 Log4j是Apache的一个开放源码代项目,通过应用Log4j,我们可以控制日记信息运送的目的地是控制台、文件、GUI件组、甚至是套接口服务器、NT的事件记录器、UNIXSyslog护守程进等;我们也可以控制每一条日记的输出格式;通过定义每一条日记信...