使用iMacros在JSON文件中提取多个匹配项

时间:2014-02-23 15:57:19

标签: regex json imacros

我正在使用iMacros for Firefox,并希望从JSON文件中提取一些id。 JSON文件如下所示:

"count":0,"id":"12345","time"
blabla
"count":0,"id":"12346","time"

我在iMacros中使用的代码是:

URL GOTO=https://www.jsonurl.com
SEARCH SOURCE=REGEXP:"\"id\":\"(.[^\"]*)\"" EXTRACT="$1"
PROMPT {{!EXTRACT}}
SAVEAS TYPE=EXTRACT FOLDER=* FILE=*

使用此代码,它仅从上面的JSON示例中提取 12345 。如何编辑代码以提取所有出现的id?

2 个答案:

答案 0 :(得分:2)

对不起,不能这样做:(

  

目前不支持全局迭代匹配,因此只能找到并提取页面上的第一个匹配项。

Source (iMacros Wiki)

答案 1 :(得分:1)

我会使用JavaScript解决方案。

var macro;

macro ="CODE:";
macro +="URL GOTO=https://www.jsonurl.com"+"\n";
macro +="TAG POS=1 TYPE=DIV ATTR=CLASS:what_ever_you_are_extracting EXTRACT=HTM"+"\n";

iimPlay(macro)

var text=iimGetLastExtract();

text=text.split('"id":"')[1];
text=text.split('",')[0];

text=text.trim();

alert(text);

编辑:

命令

TAG POS=1 TYPE=HTML ATTR=CLASS:* EXTRACT=HTM

提取页面上的所有内容。