Для некоторого инструмента проверки внутренней согласованности я пытаюсь собрать список всех гиперссылок (внешние ссылки, изображения и т. Д.) В первый раз, используя python3.
Мне удалось проанализировать первый и пройтидерево, используя код ниже:
parser = docutils.parsers.rst.Parser()
components = (docutils.parsers.rst.Parser,)
settings = docutils.frontend.OptionParser(components=components).get_default_values()
document = docutils.utils.new_document('<rst-doc>', settings=settings)
parser.parse(f, document)
class MyVisitor(docutils.nodes.NodeVisitor):
def visit_reference(self, node: docutils.nodes.reference) -> None:
"""Called for "reference" nodes."""
print("reference", node)
def unknown_visit(self, node: docutils.nodes.Node) -> None:
"""Called for all other node types."""
print("unknown_visit", node)
visitor = MyVisitor(document)
document.walk(visitor)
Однако, я теперь полностью застрял в том, как найти ссылки на изображения и внешние ссылки (URL) в результате.
Кто-нибудь знает, как программно получить эти внешние ссылки из проанализированного документа?