如何使用 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
我希望根据数据源 .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 toTAG 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