我有很长的代码序列,访问网站、登录、从 .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 个网站执行此操作。
我刚在想..
我有一个带有 URL 信息的单独 .csv:
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
此致,
刘康
更新:仅使用 IIM 无法实现这一点。用 EVAL 尝试了很长时间以使 SETLOOP 上升,但这非常有限。查看更新的评论。
评论摘要:
- 将代码拆分为每个网站一个 .iim 文件
- 所有 .iim 文件都有一个唯一的 SETLOOP 并从同一个 .CSV 导入数据
- 一个 Javascript 文件执行每个 .iim 文件
- 研究解决方案以使 Javascript 仅在 .CSV 中的 COL3 包含数据时执行 .iim 文件,现在的问题是在使用 iMacros 时不允许 jQuery 时使 Javascript 从 .CSV 导入数据。