Я использую конструкцию как это:
doc = parse(url).getroot()
links = doc.xpath("//a[text()='some text']")
Но я должен выбрать все ссылки, которые имеют текст, начинающийся "с некоторого текста", таким образом, я задаюсь вопросом, там какой-либо способ использовать regexp здесь? Ничего не нашел в lxml документации
Вы можете это сделать (хотя в примере вам не нужны регулярные выражения). Lxml поддерживает регулярные выражения из функций расширения EXSLT . (см. документацию lxml для класса XPath , но он также работает для метода xpath ()
)
doc.xpath("//a[re:match(text(), 'some text')]",
namespaces={"re": "http://exslt.org/regular-expressions"})
Обратите внимание, что вам нужно указать отображение пространства имен, чтобы он знал что означает префикс "re" в выражении xpath.
Вы можете использовать функцию start-with () :
doc.xpath("//a[starts-with(text(),'some text')]")