извлечь XPath - PullRequest
       13

извлечь XPath

1 голос
/ 07 июня 2009

Я хочу получить xpath атрибута (например, «бренд» продукта с веб-сайта розничного продавца).

Один из способов сделать это - использовать аддоны, такие как xpather или xpath checker, для firefox, открыть сайт с помощью firefox и щелкнуть правой кнопкой мыши по нужному мне атрибуту. Но я хочу захватить эту информацию для многих атрибутов и щелкнуть правой кнопкой мыши по каждому атрибуту, возможно, отнимает много времени. Кроме того, другая проблема, которая у меня есть, заключается в том, что атрибуты, которые меня интересуют, будут присутствовать для одного продукта. Другие атрибуты могут быть для какого-то другого продукта. Итак, мне придется перейти на этот продукт, а затем снова сделать это вручную.

Существует ли автоматический или программный способ получения xpath требуемых атрибутов с веб-сайта вместо необходимости делать это вручную?

Ответы [ 2 ]

1 голос
/ 09 июня 2009

Вы должны заметить, что не все веб-сайты используют действительный XML, который вы можете использовать для xpath ...

Тем не менее, вы должны проверить некоторые парсеры HTML, которые позволят вам использовать xpath в HTML, даже если это не допустимый XML.

Поскольку вы не указали технологию, с которой работаете, - я предложу .NET HTML Agility Pack , если вам нужны другие, ищите вопросы, связанные с этим, здесь, на SO.

0 голосов
/ 13 июля 2015

Решение, которое я использую для такого рода вещей, - написать xpath примерно так:

//*[text()="Brand"]/following-sibling::*
//*[text()="Color"]/following-sibling::*
//*[text()="Size"]/following-sibling::*
//*[text()="Material"]/following-sibling::*

Он работает, находя все элементы (метки) с нужным вам текстом, а затем просматривая следующий элемент в HTML. Без определенного URL, чтобы увидеть, я не могу помочь дальше.

Это обобщенная версия, которую вы можете сделать более конкретными версиями, заменив звездочки на типы тегов, и вы можете перемещаться по-другому, заменив ось, следующую за родным братом, на что-то другое.

Я использую xPaths в import.io, чтобы постоянно создавать API-интерфейсы для такого рода вещей. Просто нужно найти xPath, который достаточно универсален, чтобы найти HTML, где бы он ни находился на странице, но достаточно конкретен чтобы получить правильные данные.

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