我试图从网站上提取物品的价格,提取这些值并将其保存为CSV,所有这些都使用iMacros。
我成功创建了一个循环提取和保存宏,但是我收到了意想不到的结果。每个秒的值都会在生成的CSV文件中保存两次。
我的宏代码如下:
VERSION BUILD=10022823
TAB T=1
TAB CLOSEALLOTHERS
SET !ERRORIGNORE YES
SET !LOOP 1
SET !DATASOURCE C:\Users\UserName\Documents\URL_List.csv
SET !DATASOURCE_COLUMNS 1
SET !DATASOURCE_LINE {{!LOOP}}
URL GOTO={{!COL1}}
SET !TIMEOUT_STEP 10
TAG POS=1 TYPE=DIV ATTR=CLASS:preis EXTRACT=TXT
SAVEAS TYPE=EXTRACT FOLDER=* FILE=Extracted_prices.csv
我的预期结果是:
$99.99
$89.99
$16.99
我得到的是:
$99.99
$99.99
89.99
$16.99
$16.99
我不能为我的生活找出为什么会发生这种行为。我查阅了iMacros Wiki上的可用文档但无济于事。这里有很多关于stackoverflow的问题,它们解决了数据抓取和提取宏的创建问题,其中很多都是我在创建上述宏时所参考的。然而,我无法找到遇到同样困难的人。我还检查了我的CSV文件的完整性,以确保它的创建没有任何错误,但我无法找到任何违规行为。我只是错过了一些简单的东西吗?
答案 0 :(得分:1)
VERSION BUILD=10022823
TAB T=1
TAB CLOSEALLOTHERS
SET !ERRORIGNORE YES
SET !LOOP 1
SET !DATASOURCE C:\Users\UserName\Documents\URL_List.csv
SET !DATASOURCE_COLUMNS 1
SET !DATASOURCE_LINE {{!LOOP}}
URL GOTO={{!COL1}}
SET !TIMEOUT_STEP 10
TAG POS=1 TYPE=DIV ATTR=CLASS:preis EXTRACT=TXT
SAVEAS TYPE=EXTRACT FOLDER=* FILE=Extracted_prices.csv
SET !EXTRACT NULL
也许你应该清除Extract变量的值。
答案 1 :(得分:0)
如果我的评论被清理干净,我会发布不太充分的“回答”。
玩完这个宏并拔出我的头发几个小时后,我从Internet Explorer扩展切换到Firefox和violà的iMacros扩展,一切都按预期工作。但是,在尝试运行后我收到Error code -1001
后运行宏。显然,当!DATASOURCE
中引用的CSV文件编码不正确时,会导致此错误。显然,CSV文件必须使用UTF-8编码保存。
这可能是一个很长的镜头,但我在IE扩展中收到的意外结果可能与编码有关。编辑:快速测试导致IE扩展的输出相同,即使将源CSV编码为UTF-8。
希望这对一些可怜的灵魂有所帮助!
答案 2 :(得分:0)
我通过在每个循环后添加延迟来解决此问题:
VERSION BUILD=10022823
TAB T=1
TAB CLOSEALLOTHERS
SET !ERRORIGNORE YES
SET !LOOP 1
SET !DATASOURCE C:\Users\UserName\Documents\URL_List.csv
SET !DATASOURCE_COLUMNS 1
SET !DATASOURCE_LINE {{!LOOP}}
URL GOTO={{!COL1}}
'Wait 5 seconds before extracting
WAIT SECONDS=5
SET !TIMEOUT_STEP 10
TAG POS=1 TYPE=DIV ATTR=CLASS:preis EXTRACT=TXT
SAVEAS TYPE=EXTRACT FOLDER=* FILE=Extracted_prices.csv
有关WAIT
命令的更多信息,请参见here。