2012-10-17 44 views
4

接受驗證碼 我有一個網站(不是我的),我在WebView中顯示。基於我喜歡提供原生按鈕點擊的頁面內容(按鈕不是問題)。我應該使用Regx,在WebView上插入JQuery或HTML解析來獲取其內容?

需要做什麼 我需要檢查HTML內容是否包含2-3個特定的URL。該網址可能位於網頁上的2-3個位置。如果網址不存在(有時它們是,有時它們不是),我需要對內容進行另一次搜索以創建一個我將要啓動的網址。

可能的解決方案使用Objective-C-HMTL解析器,HPPLE,ElemetParser,給XPathQuery用的libxml2解析HTML和搜索內容

  1. 屏幕刮Prons:Easy 缺點需要格式良好的HTML/XML。樹下的許多併發搜索可能會很慢。
  2. 使用正則表達式Prons:? 缺點變得難以快速讀/寫。需要一個格式良好的HTML/XML。很多併發搜索的速度可能很慢。 (沒有試過 RegexKit Light)。
  3. 插入JQuery搜索功能到WebView中並從Objective-c中調用函數。該WebViewJavascriptBridge看起來很有希望用來comunicate betweean JS和ObjC(也看着TGJSBridge,GAJavaScript和iOS的JavaScript橋Prons易Jquery的注入WebViewJavascriptBridge代碼,並使用呼叫它DELE缺點繁瑣
  4. 有另一種解決方案,我錯過了什麼?

I'm朝着解決NR傾斜。3.使用WebViewJavascriptBridge在那裏我會注入搜索jQuery函數到漢當他們發現某些東西時會被調用的dler。我可以在多個線程中運行此搜索還是在樹上搜索一次並查找所有搜索項?

回顧

-1。什麼是在不是您自己的網絡中搜索(多個)內容的「最佳」/最快解決方案?

-2。我錯過了另一個解決方案嗎?

-3。是否有可能在一個線程中運行多個JQuery搜索,並在每次發現某個東西時將結果返回給Objc?

+0

+1寫得很好的問題! – coolguy

回答

0

在回答你的問題#2(你錯過任何其他方法):

你可以,但只是爲了尋找做解析和所有其他的東西,如果HTML內容包含某些網址,不會的NSString的rangeOfString方法足夠嗎? 這取決於當然URL的格式和你究竟需要什麼(只搜索任何提到的URL?提及某個標籤內的URL?URL是否可以出現在別的地方?)。

但是從你的問題我得到的是,任務有點複雜,所以你可以提供一個html代碼片段嗎?

+0

對不起已經花了這麼長的時間來回應。我認爲我會嘗試JQuery。 NSString的rangeOfString僅限於我的需求。我將把JQuery.js文件包含到項目中,並將它注入到視圖中,並創建2-3個javascript(搜索)函數,我還將使用stringByEvaluatingJavaScriptFromString注入,我也將用它來調用搜索函數。讓我知道是否有人需要看這個代碼! – Sturla