从CSV文件中读取关键词,用于嵌套for循环格式的imacros编程

时间:2017-05-31 23:13:06

标签: csv nested-loops imacros

我正在使用CSV文件作为输入,并为我的imacros程序提供关键字。我只能读取列并生成我需要的搜索输出。我希望程序甚至可以读取行。必须像嵌套的for循环软件一样读取输入,每个行和列必须以表格形式输入          (1,2),(1,3),(1,4)..........(1,n)的          (2,3),(2,4)................(2,n)等。 是否可以用这种方式用imacros读取输入文件,或者还有其他替代方法。

这是我的程序,它使用关键字擦除信息并将解析的信息保存在另一个文件中。但是,我想同时使用行和列,并一次输入多个关键字。

'VERSION BUILD=9030808 RECORDER=FX
 TAB T=1
 set !extract_test_popup no
 set !replayspeed fast
 set !timeout_page 200
 SET !ERRORIGNORE YES
 SET !TIMEOUT_STEP 2
 SET !Datasource keyword.CSV
 Set !Loop 1
 Set !Datasource_Line {{!Loop}}

 URL GOTO=https://twitter.com/search-advanced

 wait seconds=1
 TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:ands CONTENT=
 {{!COl1}}
 TAG POS=1 TYPE=BUTTON FORM=NAME:NoFormName ATTR=TXT:Search
 wait seconds=1

 ADD !EXTRACT {{!URLCURRENT}}
 Set url {{!Extract}}
 Set !Extract Null



'Keyword Scrape
Tag pos=1 type=h1 attr=class:SearchNavigation-titleText* Extract=Txt
Set key {{!Extract}}
Set !Extract Null


'Main Heading Scrapping
Tag pos=1 type=a attr=class:AdaptiveNewsLargeImageHeadline-title* 
Extract=Txt
Set mainheading {{!Extract}}
Set !Extract Null

'Main heading URL
Tag pos=1 type=a attr=class:AdaptiveNewsLargeImageHeadline-title* 
Extract=href
Set mainheadingurl {{!Extract}}
Set !Extract Null


'Date of Post
 Tag pos=1 type=a attr=class:AdaptiveNewsHeadlineDetails-date<sp>js-nav* 
 Extract=txt
 Set date {{!Extract}}
 Set !Extract Null


 'Username whose post this article
  TAG XPATH=//*[@id="page-
container"]/div[2]/div/div/div[2]/div/div[2]/div/div[2]/div[2]/div[1]/a/span 
 Extract=Txt
 Set username {{!Extract}}
 Set !Extract Null

'extract user name
TAG POS=1 TYPE=A ATTR=TXT:@* EXTRACT=TXT
Set username1 {{!Extract}}
Set !Extract Null


Add !Extract {{mainheading}}
Add !Extract {{date}}
Add !Extract {{mainheadingurl}}
ADD !EXTRACT {{url}}
Add !Extract {{username}}
Add !Extract {{key}}
Add !Extract {{username1}}


SAVEAS TYPE=EXTRACT FOLDER=* FILE=test1_output.csv
clear'

1 个答案:

答案 0 :(得分:0)

我在这里修改了one of my codes

' max column number in the CSV '
SET maxCol 3
' fake delimiter '
SET !DATASOURCE_DELIMITER "!"
' real delimiter '
SET rd ","
SET !DATASOURCE Address.csv

SET curRow EVAL("Math.floor(({{!LOOP}} - 1) / {{maxCol}}) + 1;")
SET curCol EVAL("({{!LOOP}} % {{maxCol}} == 0) ? {{maxCol}} : {{!LOOP}} % {{maxCol}};")

SET !DATASOURCE_LINE {{curRow}}
SET kw EVAL("'{{!COL1}}'.split('{{rd}}')[{{curCol}} - 1];")

PROMPT {{curRow}}_{{curCol}}_{{kw}}

尝试使用此宏并将其调整为您的宏。