如何使用 iMacros 从同一元素的 TAG POS=x 在不同网页之间可变的网站中提取数据?

How to extract data with iMacros from a website whose TAG POS=x of the same element is variable between different webpages?

我希望根据数据源 .csv 中定义的关键字列表在网站中搜索,从而从包含多个网页的网站中提取数据。

iMacros 应按顺序进入每个单独的页面,抓取每个网页上的某些元素并将数据保存在 csv 中。所有网页之间要提取的元素是相同的。

我的问题是,当从一个网页移动到另一个网页时,元素的 TAG POS=x 不保持不变。

e.g on a page a HTML TAG element has TAG POS=95 TYPE=SPAN ATTR=* EXTRACT=TXT, while on other page same HTML TAG element changes to TAG POS=96 TYPE=SPAN ATTR=* EXTRACT=TXT

我认为唯一的可能性是通过文本属性(我的意思是它们的文本)来选择元素。

问题:

TXT:Manufacturer(或最终 TXT:Manufacturer*)这样的 TXT 参数是否允许在不知道确切 TAG POS= 的情况下进行选择?

是否有其他解决方案可以使用 iMacros 进行此类提取?(跨页面的相同 html 元素的标签位置可变)

谢谢。

(1) 一般来说,这取决于被抓取的网站。不过你可以尝试这样的命令:

TAG POS=1 TYPE=SPAN ATTR=TXT:Manufacturer* EXTRACT=TXT

(2) 如果您确切知道这些标签位置,下面的代码可能也会有所帮助:

SET !ERRORIGNORE YES
SET !TIMEOUT_STEP 0
TAG POS=95 TYPE=SPAN ATTR=* EXTRACT=TXT
TAG POS=96 TYPE=SPAN ATTR=* EXTRACT=TXT
' other commands with extraction
SET !TIMEOUT_STEP 6
SET !ERRORIGNORE NO
SET !EXTRACT EVAL("'{{!EXTRACT}}'.replace(/\[EXTRACT\]|#EANF#/g, '').trim();")

您可以使用如下标签。因此,下面的标签将提取属性以 "Manufacturer" 开头的文本,无论位置如何。

TAG POS=* TYPE=SPAN ATTR=TXT:Manufacturer* EXTRACT=TXT