from bs4 import BeautifulSoup import csv import os import re # 设置文件夹路径 folder_path = 'C:/Users/test/Desktop/DIDItest' # 创建CSV文件 csv_file = open('output.csv', 'w', newline='') csv_writer = csv.writer(csv_file) csv_writer.writerow(['ID', '时间', '发送号码', '接收号码', '发送内容']) # 遍历文件夹下的所有文件 for root, dirs, files in os.walk(folder_path): for file in files: if file.endswith('.html'): file_path = os.path.join(root, file) # 打开文件并解析HTML源代码 with open(file_path, 'r', encoding='utf-8') as f: soup = BeautifulSoup(f, 'html.parser') # 将soup对象转换为字符串 html_string = str(soup) # 提取talkid、时间、发送号码、接收号码、信息类型和消息内容的正则表达式模式 pattern = r'\[talkid:(\d+)\](.*?)</span> 向 (.*?) 发送 (.*?):\[(.*?)\]' matches = re.findall(pattern, html_string)
时间: 2024-04-14 19:31:30 浏览: 103
import reimport requestsfrom bs4 import BeautifulSoupimport t
这段代码是用于将指定文件夹下的HTML文件解析并提取其中的信息,然后将提取的信息写入CSV文件中。体步骤如下:
1. 导入需要的模块:`BeautifulSoup`用于解析HTML,`csv`用于操作CSV文件,`os`用于文件路径操作,`re`用于正则表达式匹配。
2. 设置文件夹路径:将需要解析的HTML文件所在的文件夹路径赋值给变量`folder_path`。
3. 创建CSV文件:使用`open`函数创建一个名为`output.csv`的CSV文件,并创建一个`csv.writer`对象用于写入数据。第一行写入CSV文件的标题行。
4. 遍历文件夹下的所有文件:使用`os.walk`函数遍历指定文件夹下的所有文件。
5. 判断文件是否为HTML文件:通过判断文件名的后缀是否为`.html`来确定是否为HTML文件。
6. 打开文件并解析HTML源代码:使用`open`函数打开文件,并使用`BeautifulSoup`将文件内容解析为HTML对象。
7. 将soup对象转换为字符串:使用`str()`函数将`soup`对象转换为字符串`html_string`,以便进行正则表达式匹配。
8. 提取信息并写入CSV文件:使用正则表达式模式提取talkid、时间、发送号码、接收号码、信息类型和消息内容,并使用`re.findall`函数匹配所有符合模式的内容。然后遍历匹配结果,提取相应的内容,并根据信息类型进行判断处理。最后将提取到的数据写入CSV文件。
请注意,这段代码中的路径、正则表达式模式等部分可能需要根据实际情况进行调整。
阅读全文