2017-04-07 1 views
0

Google SERPから検索結果カウンターを削り取ろうとしています。 Googleスプレッドシート、ImportXMLRegExReplaceで動作しますが、必ずしもそうではありません。スプレッドシートの不具合が原因です。だから私はiMacrosでそれを達成しようとしていると正しくフィルタリングされた傷ついた文字列を取得することはできません。 GスプレッドシートでiMacrosの正規表現フィルタ

iは

=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"でインポート文字列はここで正規表現.*?([0-9,]+) (w|r)esults?フィルタAbout 4,290,000 resultsで全体うち、すべての言葉が私は数を結果取得のみ使用します。私が言ったように、それはスプレッドシートで確実に動作しません。

質問はです:iMacrosでこのRegExを使用して番号を取得するにはどうすればよいですか?私はこの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

ありがとうございました!それは本当にかなりシンプルに見えますが、私は自分自身でそれに来ることはありません。 –