2017-04-07 103 views
0

我試圖從Google SERP中搜索結果計數器。它適用於Google Spreadsheets,ImportXMLRegExReplace,但並非總是如此,因爲Spreadsheets錯誤。所以我試圖用iMacros來完成它,並且無法正確過濾掉被刮掉的字符串。iMacros的正則表達式過濾器

輸入G電子表格,我使用

=REGEXREPLACE(IMPORTXML("https://www.google.com/search?q=test&hl=en&as_qdr=m","//div[@id='resultStats']"),".*?([0-9,]+) (w|r)esults?","$1") 

全在id="resultsStats"進口字符串About 4,290,000 results這裏正則表達式.*?([0-9,]+) (w|r)esults?過濾所有的話出來,所以我只得到結果的數目。正如我所說的,它在電子表格中不能可靠地工作。

問題是:我如何使用此RegEx與iMacros獲取唯一的數字?我用這個代碼的iMacros:

VERSION BUILD=8881205 RECORDER=FX 
SET !TIMEOUT_STEP 0 
SET !ERRORIGNORE YES 
TAB T=1 
SET !DATASOURCE sr1.csv 
SET !DATASOURCE_COLUMNS 1 
SET !LOOP 1 
SET !DATASOURCE_LINE {{!LOOP}} 
SET !VAR1 EVAL("var randomNumber=Math.floor(Math.random()*45 + 16); randomNumber;") 
URL GOTO={{!COL1}} 
WAIT SECONDS={{!VAR1}} 
TAG POS=1 TYPE=DIV ATTR=ID:resultStats EXTRACT=TXT 

ADD !EXTRACT {{!URLCURRENT}} 
SET !EXTRACT EVAL("decodeURI('{{!EXTRACT}}');") 
SAVEAS TYPE=EXTRACT FOLDER=* FILE=+{{!NOW:ddmmyyyy}}.csv 

回答

2

這是很簡單的事:

' ... ' 

TAG POS=1 TYPE=DIV ATTR=ID:resultStats EXTRACT=TXT 
SET !EXTRACT EVAL("'{{!EXTRACT}}'.match(/[0-9,]+/);") 

' ... ' 
+0

謝謝!雖然看起來確實非常簡單,但我不會靠自己來實現。 –