Как извлечь цену при импорте xml Google листов xpath - PullRequest
0 голосов
/ 06 апреля 2020

Доброе утро,

Я не могу извлечь цену на этой странице с помощью функции импорта xml: https://www.t-collector.com/reine?prop%5Bcolor%5D=black&product=26&side=front

Мне нужно обновить мои файлы Google Merchant. Я пробовал разные формулы, такие как:

=importxml(G2;"//span[@itemprop='price']")
=importxml(G2;"//b[@itemprop='price']/@content")
=importxml(G2;"//b[@itemprop='price'][1]/@content")
=importxml(G2;"//meta[@itemprop='price'][1]/@content")
=importxml("G2";"//span[@itemprop='price']")

, но ничего не работает

С уважением

1 Ответ

0 голосов
/ 06 апреля 2020

Сайт использует динамический c рендеринг. Селен будет требоваться здесь. Но мы можем попробовать с GoogleSheets. Мы используем собственный скрипт для прямой загрузки данных JSON.

Скрипт для импорта данных JSON с помощью GoogleSheets (кредиты Полу Гамбиллу): https://gist.github.com/paulgambill/cacd19da95a1421d3164

И данные:

https://www.t-collector.com/campaigns/C-PGE7F?format=json&store=tcollectorofficiel

Мы используем SQL -подобные формулы, чтобы сохранить только цену. Результат:

TShirt

РЕДАКТИРОВАТЬ: Решение с ИМПОРТОМ XML:

Вы можете использовать следующую формулу (протестировано с 5 рубашками) :

=IMPORTXML(A2;"substring-after(substring-before((//script)[6],'"",""category""'),',""price"":""')")

Вывод: TShirtsv2

РЕДАКТ. 2: Исправлено извлечение отображаемой цены по умолчанию в евро:

=IMPORTXML(A2;"substring-after(substring-before(//script[starts-with(.,'var campaignObj')],'"",""gbp""'),'""eur"":""')")

Вывод :

FixTS

РЕДАКТИРОВАТЬ 3: Чтобы игнорировать цены продажи, мы можем использовать следующий один вкладыш:

=SI(IMPORTXML(A2;"substring(substring-after(//script[starts-with(.,'var campaignObj')],'""compare_at_prices"":{""eur"":""'),1,1)")=0;IMPORTXML(A2;"substring-after(substring-before(//script[starts-with(.,'var campaignObj')],'"",""gbp""'),'""eur"":""')");IMPORTXML(A2;"substring-before(substring-after(//script[starts-with(.,'var campaignObj')],'""compare_at_prices"":{""eur"":""'),'""')"))

Выход:

CorrectionOnSale

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...