对于某些内部一致性检查工具,我尝试使用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)的引用。
有人知道如何以编程方式从已解析的文档中检索这些外部链接吗?
答案 0 :(得分:1)
是的,使用正则表达式库
https://www.w3schools.com/python/python_regex.asp
您应该能够匹配类似(http[^\s]*)
之类的东西,这意味着匹配文本“ http”,后跟零个或多个来自反向空格的字符(除空格字符之外的任何字符)