Как получить доступ к HTML DOM Property с помощью iMacros - xPath - PullRequest
0 голосов
/ 12 апреля 2020

iMacros ver: 10.0.2.1450 (БЕСПЛАТНО), Firefox, Windows 10

Здравствуйте, цель состоит в том, чтобы извлечь значение свойства HTML DOM, такого как id, href и data-download- URL-адрес файла для каждого изображения, отображаемого на этом веб-сайте . Я полагаю, что 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 Property, включая тот, который мне не интересен.

В соответствии с приведенным ниже руководством;

[OP1] [https://forum.imacros.net/viewtopic.php?t=26155] [OP2] [ Как извлечь указанный c текст с помощью imacros xpath

Извлечь указанное свойство c DOM можно с помощью чего-то вроде следующего:

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

Однако вместо этого выполняется выдайте ошибку.

Я действительно ценю, если кто-то может пролить свет на эту проблему.

Пример свойства DOM для рисунка 1. Все свойства имеют розовый цвет. https://drive.google.com/open?id=190q615C3uXLZUQNI8K4AJYL3Slii1ktO

1 Ответ

2 голосов
/ 12 апреля 2020

Ваш XPath содержит ошибку (@id вместо @class). Исправьте это с помощью:

//figure[1]/div[@class='showcase__content']

Для доступа к URL-адресу для загрузки файла это будет:

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

РЕДАКТИРОВАТЬ: чтобы получить значения из определенных c атрибутов, которые вы должны извлечь код из элемента с функцией 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 для достижения вашей конечной цели.

...