出乎意料的是,每个其他值在循环中被保存两次

问题描述 投票:0回答:3

我正在尝试从网站上抓取商品的价格,提取这些值并将它们保存到 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 文件的完整性,以确保其创建过程中没有任何错误,但我无法发现任何违规行为。我只是错过了一些很简单的事情吗?

web-scraping imacros
3个回答
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 变量的值。


0
投票

如果我的评论被清理,我将发布我不够充分的“答案”。

在玩弄这个宏并拔掉头发几个小时后,我从 Internet Explorer 扩展切换到 Firefox et violà 的 iMacros 扩展,一切都按预期工作。然而,运行宏后,我在尝试运行时收到了

Error code -1001
。显然,此错误是由于
!DATASOURCE
中引用的 CSV 文件编码不正确而引起的。 CSV 文件显然必须使用 UTF-8 编码保存。

这可能是一个远景,但我在 IE 扩展中收到的意外结果可能与编码有关。 编辑:即使在对源 CSV 进行编码之后,快速测试也会从 IE 扩展中产生相同的输出作为 UTF-8。

希望这可以帮助一些可怜的灵魂!


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
命令的更多信息可以在此处找到。

© www.soinside.com 2019 - 2024. All rights reserved.