import re from bs4 import BeautifulSoup from markdownify import MarkdownConverter as _MarkdownConverter class MarkdownConverter: """HTML 转 Markdown 转换器,保留完整格式 处理知乎等平台的图片懒加载机制: - 知乎图片的 src 属性可能是 SVG 占位符 (data:image/svg+xml;...) - 真实图片 URL 存储在 data-actualsrc 或 data-original 属性中 """ def __init__(self): self.converter = _MarkdownConverter( heading_style="ATX", bullets="*,-", code_blocks=True, tables=True, strip=["script", "style", "nav", "footer", "aside"] ) def convert(self, html: str) -> str: """转换 HTML 为 Markdown Args: html: 输入的 HTML 字符串 Returns: 转换后的 Markdown 字符串 """ # 预处理:处理懒加载图片 html = self._fix_lazy_load_images(html) return self.converter.convert(html) def _fix_lazy_load_images(self, html: str) -> str: """修复懒加载图片的 src 属性 将 data-actualsrc 或 data-original 属性的值替换到 src 属性中, 以便 markdownify 能够正确提取真实图片 URL。 同时移除