如何使用 iMacros - xPath 访问 HTML DOM 属性

How to access HTML DOM Property using iMacros - xPath

iMacros 版本:10.0.2.1450(免费),Firefox,WIndow10

您好, objective是提取每个显示的图片的HTMLDOM属性的id,href和data-download-file-url的值来自这个website。我相信 XPATH 将适合这项任务,因为每个图像都可以通过以下泛化 XPATH

/html/body/main/section[2]/div/div/figure[X]/div

大写X表示图片标签,取值1到50,为上述网站。

我知道,要提取图1的属性,例如可以通过

TAG XPATH="/html/body/main/section[2]/div/div/figure[1]"  EXTRACT=TXT

但是,上面的行输出了所有 DOM 属性 包括我不感兴趣的那个。

根据下面的教程;

[OP1][https://forum.imacros.net/viewtopic.php?t=26155] [OP2][

提取特定的DOM 属性可以通过类似下面的方式实现

TAG XPATH="/html/body/main/section[2]/div/div/figure[1]/div[@id='showcase__content'] "  EXTRACT=TXT

然而执行却报错

如果有人能阐明这个问题,我将不胜感激。

图 1 的 DOM 属性 示例。所有属性均为粉红色。 https://drive.google.com/open?id=190q615C3uXLZUQNI8K4AJYL3Slii1ktO

您的 XPath 包含错误(@id 而不是 @class)。用 :

修复它
//figure[1]/div[@class='showcase__content']

要访问 url 下载文件,应该是:

//figure[1]/div[@class='showcase__content']//@data-download-file-url

编辑:要从特定属性中获取值,您必须使用 HTM 函数从元素中提取代码,然后使用正则表达式。可以直接提取HREF属性。

我不是 imacros 用户,所以我的代码可能不是最聪明的:

VERSION BUILD=1005 RECORDER=CR
URL GOTO=https://www.freepik.com/search?dates=any&format=search&page=1&query=Polygonal%20Human&sort=popular
TAG XPATH="//figure[1]/div[@class='showcase__content']/a" EXTRACT=HREF
SET !VAR3 {{!EXTRACT}}
TAG XPATH="//figure[1]/div[@class='showcase__content']/a" EXTRACT=HTM
SET !VAR1 EVAL("var regex = /url=\"(.+?)\"/; var str = '{{!EXTRACT}}';str.match(regex)[1];")
SET !VAR2 EVAL("var regex = /id=\"(.+?)\"/; var str = '{{!EXTRACT}}';str.match(regex)[1];")
PROMPT {{!VAR1}}
PROMPT {{!VAR2}}
PROMPT {{!VAR3}}

旁注:imacros 的免费用户仅限于 3 个声明变量(!VAR1 到 3)。您可能需要循环和 SET !EXTRACT_TEST_POPUP NO 来实现您的最终目标。