从本地C:\DIDI文件夹下多个文件夹内html数据中爬取ID、注册号码、发送ID、接受ID、聊天内容
时间: 2023-09-10 10:13:01 浏览: 92
读取某一文件夹下多个不同数据文件名
要从本地多个文件夹内的 HTML 文件中爬取 ID、注册号码、发送 ID、接收 ID 和聊天内容,你可以使用 Python 的 `BeautifulSoup` 库进行 HTML 解析和数据提取。同时,你可以使用 Python 的 `os` 库来遍历文件夹和文件。
下面是一个示例代码,展示了如何实现这个过程:
```python
from bs4 import BeautifulSoup
import csv
import os
# 定义要提取的字段名称
fields = ['ID', '注册号码', '发送ID', '接收ID', '聊天内容']
# 创建 CSV 文件并写入表头
with open('chat_data.csv', 'w', newline='', encoding='utf-8') as file:
writer = csv.writer(file)
writer.writerow(fields)
# 遍历文件夹下的子文件夹
for root, dirs, files in os.walk('C:\\DIDI'):
for folder in dirs:
folder_path = os.path.join(root, folder)
# 遍历子文件夹中的 HTML 文件
for filename in os.listdir(folder_path):
if filename.endswith('.html'):
# 打开 HTML 文件并解析数据
with open(os.path.join(folder_path, filename), 'r', encoding='utf-8') as html_file:
soup = BeautifulSoup(html_file, 'html.parser')
# 提取所需的数据
data = []
data.append(soup.find('span', {'class': 'id'}).text.strip())
data.append(soup.find('span', {'class': 'registration-number'}).text.strip())
data.append(soup.find('span', {'class': 'sender-id'}).text.strip())
data.append(soup.find('span', {'class': 'receiver-id'}).text.strip())
data.append(soup.find('div', {'class': 'chat-content'}).text.strip())
# 写入数据到 CSV 文件
writer.writerow(data)
print('数据导出完成!')
```
在这个示例中,我们首先定义要提取的字段名称,并创建一个名为 `chat_data.csv` 的 CSV 文件,并写入表头。然后,我们使用 `os.walk` 函数遍历文件夹 `C:\DIDI` 及其子文件夹。
在每个子文件夹中,我们遍历 HTML 文件并打开每个文件进行解析。然后,使用 `BeautifulSoup` 提取每个字段的数据,并将数据添加到 `data` 列表中。最后,我们使用 `csv.writer` 将每一行的数据写入到 CSV 文件中。
请确保将 `'C:\\DIDI'` 替换为包含 HTML 文件的实际文件夹路径。
运行这个代码后,你将在当前目录下找到一个名为 `chat_data.csv` 的文件,其中包含了提取的 ID、注册号码、发送 ID、接收 ID 和聊天内容。
希望这可以帮助到你!如果你有其他问题,请随时提问。
阅读全文