Это пример HTML.
<html>
<a href="HarryPotter:Chamber of Secrets">
text
</a>
<a href="HarryPotter:Prisoners in Azkabahn">
text
</a>
</html>
Я нахожусь в ситуации, когда мне нужно извлечь
Chamber of Secrets
Prisoners in Azkabahn
Я использую lxml 4.2.1 в python, который использует xpathb1.0.
Я пытался извлечь с помощью XPath
'substring-after(//a/@href,"HarryPotter:")'
, который возвращает только "Chamber of Secrets"
.
и с XPath
'//a/@href[substring-after(.,"HarryPotter:")]'
, который возвращает
'HarryPotter:Chamber of Secrets'
'HarryPotter:Prisoners in Azkabahn'
Я искал это и получил новое обучение, но не нашел решения моей проблемы.
Я пробовал другой XPath, используя substring-after
.
В своем исследовании я узнал, что это также может быть выполнено с помощью регулярных выражений, затем я попытался и потерпел неудачу.
Я обнаружил, что в XPath 2.0 и выше легко манипулировать строкой с помощью регулярных выражений, но мы также можем использовать регулярные выражения в XPath 1.0 с использованием расширений XSLT.
Можем ли мы сделать это с помощью функции substring-after
, если да, то каков XPath, а если нет, то каков наилучший подход для получения желаемого результата?
И как мы можем получить желаемый результат, используя регулярные выражения в XPath, придерживаясь lxml.