悠悠楠杉
网站页面
首先,我们需要编写一个正则表达式来移除HTML标签间的空格。这可以通过匹配HTML标签(如<tag>
)与标签内的内容(非空格字符)之间的空白字符实现。
```python
import re
def removespacesbetweentags(html):
# 使用正则表达式移除标签间的空格
cleanedhtml = re.sub(r'\s+', ' ', html) # 移除多个连续空格为单个空格
cleanedhtml = re.sub(r'>([^<])', r'>\1', cleanedhtml) # 确保标签之间没有多余的空格
cleanedhtml = re.sub(r'(<[^>]+>)\s+', r'\1', cleanedhtml) # 移除标签间的空格
return cleaned_html
```
```python
def htmltomarkdown(html):
# 移除标签间的多余空格
cleanedhtml = removespacesbetweentags(html)
# 假设HTML中已经包含了<title>, <meta name="keywords"> 和 <meta name="description"> 标签
title = re.search(r'<title>(.*?)</title>', cleaned_html, re.S)
keywords = re.search(r'<meta\s+name="keywords"\s+content="([^"]*)"', cleaned_html)
description = re.search(r'<meta\s+name="description"\s+content="([^"]*)"', cleaned_html)
content = re.search(r'<div\s+class="content">(.*?)</div>', cleaned_html, re.S) # 假设正文在class="content"的div中
if title:
title = title.group(1).strip()
else:
title = ""
if keywords:
keywords = keywords.group(1).strip()
else:
keywords = ""
if description:
description = description.group(1).strip()
else:
description = ""
if content:
content = content.group(1).strip() # 假设这里的内容已经是清理过的,不需要再额外处理
else:
content = "" # 如果没有找到正文内容,可能需要其他方式获取或定义默认内容。
# 构建Markdown格式的文本
markdown_text = f"## {title}\n" \
f"### 关键词: {keywords}\n" \
f"### 描述: {description}\n" \
f"正文: {content}" \
f"\n(如果需要更多正文内容,请继续添加)" # 确保最后有换行符,以符合Markdown格式规范。
return markdown_text.strip() # 返回处理后的Markdown文本,并去除首尾的空格。
```
这个示例代码包括了两个主要函数:用于将清理后的HTML转换为Markdown格式的文本。注意,这个示例假定HTML中有合适的标签和内容结构,实际使用时可能需要根据具体HTML结构调整正则表达式。