iMacros:URL GOTO = null,跳过?

时间:2013-07-08 06:37:16

标签: imacros

我有一长串代码,访问网站,登录,发布.csv内容并保存信息,注销并访问下一个网站。它全部是硬编码的

跳过部分代码的最简单方法是什么? 我有60个网站。例如:

现在,我不希望宏访问网站5,6,7,9,10,22,26,35,40,45,50,59。
在一小时,我不希望宏访问网站4,5,9,10,19,30,31,49和50。

示例我的代码如何显示:

' First Website 
TAB T=1
SET !DATASOURCE test.csv
SET !DATASOURCE_COLUMNS 2
SET !LOOP 2
SET !DATASOURCE_LINE {{!LOOP}}
SET !ERRORIGNORE YES
SET !TIMEOUT_PAGE 2

URL GOTO=http://liu.com

TAG POS=1 TYPE=INPUT:TEXT FORM=ID:mortalSubmit ATTR=NAME:title CONTENT={{!COL1}}
TAG POS=1 TYPE=TEXTAREA FORM=ID:mortalSubmit ATTR=ID:post CONTENT={{!COL2}}
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:mortalSubmit ATTR=ID:submit

ADD !EXTRACT {{!URLCURRENT}}
ADD !EXTRACT {{!COL1}}
ADD !EXTRACT {{!COL2}}
TAG POS=1 TYPE=DIV ATTR=CLASS:success EXTRACT=TXT
TAG POS=1 TYPE=DIV ATTR=CLASS:error EXTRACT=TXT
SAVEAS TYPE=EXTRACT FOLDER=* FILE=report.csv

TAG POS=2 TYPE=A ATTR=TXT:Log<SP>out

WAIT SECONDS=3

' Second Website 

TAB T=1
SET !DATASOURCE test.csv
SET !DATASOURCE_COLUMNS 2
SET !LOOP 3
SET !DATASOURCE_LINE {{!LOOP}}
SET !ERRORIGNORE YES
SET !TIMEOUT_PAGE 2

URL GOTO=http://kang.com/admin

TAG POS=1 TYPE=A ATTR=TXT:Add<SP>New
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:combatSubmit ATTR=NAME:title CONTENT={{!COL1}}
TAG POS=1 TYPE=TEXTAREA FORM=ID:combatSubmit ATTR=ID:post CONTENT={{!COL2}}
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:combatSubmit ATTR=ID:submit

ADD !EXTRACT {{!URLCURRENT}}
ADD !EXTRACT {{!COL1}}
ADD !EXTRACT {{!COL2}}
TAG POS=1 TYPE=DIV ATTR=CLASS:updated EXTRACT=TXT
SAVEAS TYPE=EXTRACT FOLDER=* FILE=report.csv

TAG POS=2 TYPE=A ATTR=TXT:Exit

WAIT SECONDS=3

这对我来说很有效。

因此,在上面的示例中,如何使代码跳过第一个网站并直接转到第二个网站?我知道我可以将代码的第一部分作为注释并将SET!LOOP从3更改为2.它可以工作,但我不能在60个网站上执行此操作。

我在想......

我有一个单独的.csv与URL信息:

URL,Name
http://liu.com,LIU.COM
http://kang/admin.com,KANG.COM

在代码中:

SET !DATASOURCE urls.csv

' First Website
SET !LOOP 2
URL GOTO={{!COL1}}

' Second Website
SET !LOOP 3
URL GOTO={{!COL1}}

并以某种方式使IF col1 = null GOTO COMMAND LINE x,或其他东西! 或者只是在col1中键入dasjdkaskasdasasdasg.com并让它运行低谷,尽管这将是一个时间浪费。它是否存在更好的解决方案?

SET!LOOP 也是一个问题。是否可以制作第一个!SETLOOP 2以及接下来的每一个!SETLOOP previous + 1

致以最诚挚的问候,

刘康

UPPDATED:只有使用IIM才能实现这一目标。尝试使用EVAL使SETLOOP上升,但这是非常有限的。 See updated comment

评论摘要:

  • 将代码拆分为每个网站一个.iim文件
  • 所有.iim文件都有一个唯一的SETLOOP,并从同一个.CSV
  • 导入数据
  • Javascript文件执行每个.iim文件
  • 只有当.CSV中的COL3包含数据时,使用解决方案才能使Javascript执行.iim文件,现在问题是{i}在使用iMacros时不允许使用jQuery。

1 个答案:

答案 0 :(得分:1)

这是

上的代码示例
  

如果不允许使用jQuery,如何将.csv数据导入Javascript   iMacros的?

var checksubj,scrape;
checksubj =  "CODE:";
checksubj +=  "SET !DATASOURCE example.csv" + "\n"; 
checksubj +=  "SET !DATASOURCE_COLUMNS 1" + "\n"; 
checksubj +=  "SET !DATASOURCE_LINE {{line}}" + "\n";
checksubj +=  "SET !extract {{!col1}}" + "\n";
iimSet("line",1);
iimPlay(checksubj);
scrape=iimGetLastExtract(0);