仅提取body内数据并删除<>p()</p>
时间: 2023-12-15 19:05:43 浏览: 22
您可以使用以下代码来只提取 `<body>` 标签的数据并删除 `<p>` 和 `()</p>`:
```python
import os
from bs4 import BeautifulSoup
import re
# 指定文件夹路径
folder_path = "C:/Users/test/Desktop/DIDItest"
# 正则表达式模式
pattern = r'<body>(.*?)<\/body>'
# 遍历文件夹中的所有文件
for root, dirs, files in os.walk(folder_path):
for file in files:
# 读取html文件
file_path = os.path.join(root, file)
with open(file_path, "r", encoding="utf-8") as f:
html_code = f.read()
# 使用正则表达式匹配<body>标签内的数据
body_data = re.findall(pattern, html_code, re.DOTALL)
# 剔除<p>和()</p>
body_data = body_data[0].replace("<p>", "").replace("()</p>", "")
# 打印提取的数据
print(body_data)
```
这段代码使用了 `os` 模块来遍历文件夹中的所有文件,并使用 `re` 模块来使用正则表达式匹配 `<body>` 标签内的数据。然后,使用字符串替换函数剔除 `<p>` 和 `()</p>`。最后,打印提取的数据。
请确保您已经安装了 `BeautifulSoup` 和 `re` 模块,可以使用以下命令来安装:
```
pip install beautifulsoup4
pip install regex
```
注意:为了更准确地匹配 `<body>` 标签内的数据,这里使用了 `re.DOTALL` 选项,它会使点号(.)能够匹配换行符。