Re: [JSP ] 在 Server 端用 HtmlUnit

楼主: TonyQ (自立而后立人。)   2014-05-13 13:10:45
※ 引述《Laisky (Wilaind)》之铭言:
: 大家好,
: 最近想写个网页行为自动化的程式,像 FB 登入留言
: 于是用了 HtmlUnit
: http://htmlunit.sourceforge.net/
: 来模拟平常我们在浏览器上的行为,
: 想请问一下,我以这个 Library 来模拟行为,像点网页,Cross domain post form
: 是一个好的方向吗?
不过如果目标网页与你熟 http 的话,
直接找到 form 的 target 或直接针对 html source 做事,
某个角度上比起倚赖一个(模拟的) browser 会更稳定一点。
另外假设网页不会变这个前提基本上是错的,
但只要做到当网页变了你程式就会适当的 fail 不会写入怪怪的资料,
那对这件事情的处理就是对的。
(通常我会设定我自己预期的网页特征,
比方说我会先检查我所有对应用到的 dom 都如我预期的活着,
才进行 parse。)
: 因为我想实作在 Server 端,然后用 HTML, JavaScript 来方便地呈现我的 UI
: 但是整体感觉对 Library 的 Dependency 好高呀,
: 而且这 Library 在 JSP 跑时遇到的错误、Exception 比在一般 java 程式跑还多...
: 所以想说是不是搞错方向了,
: 来问问大家的意见,谢谢~
先不论你是不是把 java application 跟 jsp 弄混的这件事情,
你的 Dependency 读起来有几种意思,一个是对于这个 lib 是否可以信任:
我认为倚赖 HtmlUnit 这种实作上相对比较不稳定的 lib,的确不是件好事。
(btw 先说我曾经用过 HtmlUnit 相关的技术应用在工作上约数个月到一年)
类似的 solution 如 WebDriver(IEDriver,ChromeDriver,FirefoxDriver)
(以上包含 HtmlUnit 都属于 selenium 相关会碰到的)
这些的缺点都是因为 browser 本身的执行效率、稳定性,
网页的语法的品质,这些因素加起来容易产生不稳定的 crash ,
所以可以的话我会建议你找到该做的 form 或该 parse 的资料,
用 httpclient 这种相对比较稳定的 lib 去做,
因为只需要拿 source 跟记 cookie,相对会比 html unit 稳定很多。
另一个可能意思是讨厌多一个 jar 、在 project 多设定一次 classpath ,
这个倒是好解决,学会使用 maven 等常见的 dependency 管理机制就好了。
btw 我是认为 MVC 对原题偏向于题外话,不是问题的主要核心,
先搞定主要问题再去研究怎么把周边问题处理好就行了。
作者: deicide218 (软软)   2014-05-13 14:15:00
TonyQ大大
作者: Laisky (Wilaind)   2014-05-13 15:01:00
假设网页不会变的那点,我的确是没有处理...而 dependency 的考虑跟前一点差不多,不过后来我还有遇到javascript 处理的问题,我用了 http 去做了相应的事,但没得到相应的结果,这样来说,我应该再找找看那时的问题点。因为我的确也想照您所说的只用 http 来完成。

Links booklink

Contact Us: admin [ a t ] ucptt.com