您好我想从这个网站提取数据:taobao.com 我唯一需要的是在商店的每个项目中提取 data-id 属性值。 我将举例说明数据源引用文件:
https://shop122418146.world.taobao.com
https://shop68989753.world.taobao.com
这是我尝试过的。
const L = "\n";
const numLines = 3;
/* --------------------- main --------------------- */
for (x = 1; x <= numLines; x++) {
iimPlayCode (
'SET !DATASOURCE E:\\XXX\\Taobao\\TaobaoShop.csv' + L +
'SET !DATASOURCE_LINE ' + x + L +
//'SET !REPLAYSPEED MEDIUM' + L
'URL GOTO={{!COL1}}' + L +
'WAIT SECONDS=1' + L +
'EVENTS TYPE=KEYPRESS SELECTOR="HTML" KEYS="[40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40]"' + L +
'WAIT SECONDS=1' + L
);
for (y = 1; ;y++) {
iimPlayCode (
'TAG POS=' + y + ' TYPE=DL ATTR=CLASS:item* EXTRACT=data-id' + L
);
if(iimGetLastExtract()=="#EANF#"){
break;
} else{
iimPlayCode (
'SAVEAS TYPE=EXTRACT FOLDER={{!FOLDER_DATASOURCE}}\\Taobao\ FILE=Taobao.csv' + L +
'SET !EXTRACT NULL' + L
);
}
}
}
我认为它可以很容易实现,但它只会像这些一样返回
""
""
""
""
...
有什么建议可以解决吗?
答案 0 :(得分:0)
啊哈! 我正在尝试使用match()方法的另一种方法,它可以无缝地工作。
SET !EXTRACT EVAL("'{{!EXTRACT}}'.match(/-*[0-9]+/)")