Web scraping iOpus iMacro网络垃圾循环

Web scraping iOpus iMacro网络垃圾循环,web-scraping,nested-loops,imacros,Web Scraping,Nested Loops,Imacros,我正在使用Opus iMacros附加组件和Internet Explorer。下面的宏从我的excel CSV文件的第一行获取一个变量,并在网站上执行搜索。该网站的搜索结果可能是10到200条记录,每页20条(1-10页)。然后,宏将每个页面提取到文本文件中,以供将来参考 SET !ERRORIGNORE YES SET !EXTRACT_TEST_POPUP NO TAB T=1 TAB CLOSEALLOTHERS SET !DATASOURCE 7Digits.csv SET !DATA

我正在使用Opus iMacros附加组件和Internet Explorer。下面的宏从我的excel CSV文件的第一行获取一个变量,并在网站上执行搜索。该网站的搜索结果可能是10到200条记录,每页20条(1-10页)。然后,宏将每个页面提取到文本文件中,以供将来参考

SET !ERRORIGNORE YES
SET !EXTRACT_TEST_POPUP NO
TAB T=1
TAB CLOSEALLOTHERS
SET !DATASOURCE 7Digits.csv
SET !DATASOURCE_Columns 1
SET !DATASOURCE_LINE {{!LOOP}}
'Login
URL GOTO=https://SomeWebsite.com/login
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:form1 ATTR=NAME:USER_NAME CONTENT=ABC123
TAG POS=1 TYPE=INPUT:PASSWORD FORM=NAME:form1 ATTR=NAME:PASSWORD CONTENT=XXX

'set search criteria on multiple search page
TAG POS=1 TYPE=TEXTAREA FORM=NAME:form1 ATTR=NAME: NUMBER CONTENT={{!COL1}}
TAG POS=1 TYPE=INPUT:IMAGE FORM=NAME:form1 ATTR=ID:SEARCH
‘Extract results and SAVE
TAG POS=1 TYPE=A ATTR=TXT:1
TAG POS=2 TYPE=TABLE ATTR=TXT:*location* EXTRACT=TXT
SAVEAS TYPE=txt FOLDER=* FILE=mytable_{{!NOW:yymmdd_hhnnss}}
TAG POS=1 TYPE=A ATTR=TXT:2
TAG POS=2 TYPE=TABLE ATTR=TXT:*location* EXTRACT=TXT
SAVEAS TYPE=txt FOLDER=* FILE=mytable_{{!NOW:yymmdd_hhnnss}}
TAG POS=1 TYPE=A ATTR=TXT:3
TAG POS=2 TYPE=TABLE ATTR=TXT:*location* EXTRACT=TXT
SAVEAS TYPE=txt FOLDER=* FILE=mytable_{{!NOW:yymmdd_hhnnss}}
TAG POS=1 TYPE=A ATTR=TXT:4
TAG POS=2 TYPE=TABLE ATTR=TXT:*location* EXTRACT=TXT
SAVEAS TYPE=txt FOLDER=* FILE=mytable_{{!NOW:yymmdd_hhnnss}}
TAG POS=1 TYPE=A ATTR=TXT:5
TAG POS=2 TYPE=TABLE ATTR=TXT:*location* EXTRACT=TXT
SAVEAS TYPE=txt FOLDER=* FILE=mytable_{{!NOW:yymmdd_hhnnss}}
TAG POS=1 TYPE=A ATTR=TXT:6
TAG POS=2 TYPE=TABLE ATTR=TXT:*location* EXTRACT=TXT
SAVEAS TYPE=txt FOLDER=* FILE=mytable_{{!NOW:yymmdd_hhnnss}}
TAG POS=1 TYPE=A ATTR=TXT:7
TAG POS=2 TYPE=TABLE ATTR=TXT:*location* EXTRACT=TXT
SAVEAS TYPE=txt FOLDER=* FILE=mytable_{{!NOW:yymmdd_hhnnss}}
TAG POS=1 TYPE=A ATTR=TXT:8
TAG POS=2 TYPE=TABLE ATTR=TXT:*location* EXTRACT=TXT
SAVEAS TYPE=txt FOLDER=* FILE=mytable_{{!NOW:yymmdd_hhnnss}}
TAG POS=1 TYPE=A ATTR=TXT:9
TAG POS=2 TYPE=TABLE ATTR=TXT:*location* EXTRACT=TXT
SAVEAS TYPE=txt FOLDER=* FILE=mytable_{{!NOW:yymmdd_hhnnss}}
TAG POS=1 TYPE=A ATTR=TXT:10
TAG POS=2 TYPE=TABLE ATTR=TXT:*location* EXTRACT=TXT
SAVEAS TYPE=txt FOLDER=* FILE=mytable_{{!NOW:yymmdd_hhnnss}}
'END
我的挑战是,如果搜索结果少于10页,如何取消“
SAVEAS
”。例如,如果搜索仅返回60个结果,则宏只需执行
SAVEAS
命令3次(20 x 3)。我如何移动到下一个
{{!LOOP}}
而不保存同一个文本文件7次


我尝试了“
!FAIL\u ON\u ALL\u NAVIGATEERRORS
”命令,但宏完全停止。我希望移动到下一条记录,而不是停止宏。

这就是如何将iMacros代码转换为JavaScript的方法


你的问题也有答案,因为你问“如果有那么少的话”。因此,您必须将代码转换为JS并使用if子句。

您可以通过imacro javascript if公式来实现

if(search result<10) {

perform your script

}else { go to next page }

if(search results)一般的解决方案是刮取结果的数量并使用EVAL进行比较,但iMacros中仍然没有break或continue操作符,因此您需要将代码转换为js javascript格式,并从js文件执行比较和循环操作