Существует два аналогичных способа разбора hrefs
.
Более короткий (но более подверженный ошибкам, в зависимости от того, как выглядит остальная часть вашего HTML)
x('//ul[@class=""]//a/@href')
Значение: Любое "a", являющееся потомком (прямым или нет) любого узла "ul" с пустым атрибутом класса.
Несколько длиннее выражение, но оно менее подвержено ошибкамболее явный
x('//ul[@class=""]/li/a/@href')
Значение: Любой узел "a", являющийся прямым потомком любого узла "li", является прямым потомком любого узла "ul" с пустым атрибутом класса.
Кроме того, вы можете попытаться сослаться на более интересные функции xpath (хотя и не поддерживаются всеми фреймворками), например длину строки (для атрибута class).