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