适用于iMacros的正则表达式过滤器

时间:2017-04-07 14:11:14

标签: regex imacros

我正在尝试从Google SERP中搜索搜索结果计数器。它适用于Google Spreadsheets,ImportXMLRegExReplace,但并非总是如此,因为Spreadsheets出现故障。所以我正在尝试使用iMacros完成它,并且无法正确过滤掉刮掉的字符串。

在G Spreadsheets中我使用

=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?会过滤所有单词,因此我只获得结果编号。正如我所说,它在Spreadsheets中无法可靠地运行。

问题是:我如何将此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

1 个答案:

答案 0 :(得分:2)

这很简单:

' ... '

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

' ... '