提取作者用户名,帖子内容,回复时间

编程入门 行业动态 更新时间:2024-10-21 09:38:49

提取作者<a href=https://www.elefans.com/category/jswz/34/1770444.html style=用户名,帖子内容,回复时间"/>

提取作者用户名,帖子内容,回复时间

import re
import csv# 打开名为'a1.txt'的文件,并以只读模式('r')读取其内容。这里使用了'UTF-8'编码。  
with open('网页源码a1.txt', 'r', encoding='UTF-8') as f:# 读取文件的所有内容并赋值给变量'source'  source = f.read()# 使用正则表达式查找所有匹配'region_header clearfix(.*?)thread_list_bottom clearfix'的字符串,并将结果赋值给变量'every_reply'。  
# 这里使用的是非贪婪匹配,即匹配最少的字符以满足正则表达式。  
every_reply = re.findall('region_header clearfix(.*?)thread_list_bottom clearfix', source, re.S)
# 打印匹配到的结果数量  
print(len(every_reply))# 遍历每个匹配结果  
for each in every_reply:# 在每个匹配结果中查找主题作者的用户名  t1 = re.findall('title="主题作者:(.*?)"', each, re.S)# 在每个匹配结果中查找帖子的内容  t2 = re.findall('threadlist_abs_onlyline ">(.*?)<', each, re.S)# 在每个匹配结果中查找回复的时间  t3 = re.findall('=2023-(.*?)_', each, re.S)
# 打印找到的主题作者的数量  
print(len(t1))
# 创建一个空列表用于保存提取的信息  
result_list = []
# 遍历每个主题作者的用户名  
for i in range(len(t1)):# 创建一个空字典用于保存提取的信息  result = {}# 如果当前主题作者的帖子存在,则提取帖子的内容并去除其中的换行符  if i < len(t2):result['username'] = t1[i]result['content'] = t2[i].replace('\n            ', '')result['reply_time'] = t3[i]# 将提取的信息添加到结果列表中  result_list.append(result)# 打开名为'tieba.csv'的文件,并以写入模式('w')写入数据。这里使用了'UTF-8'编码。
with open('tieba.csv', 'w', encoding='UTF-8') as f:# 创建一个CSV写入器,指定字段名为'username', 'content', 'reply_time'  writer = csv.DictWriter(f, fieldnames=['username', 'content', 'reply_time'])# 写入CSV文件的头部(字段名)  writer.writeheader()# 将提取的信息写入CSV文件中  writer.writerows(result_list)

运行后'tieba.csv'的文件 

更多推荐

提取作者用户名,帖子内容,回复时间

本文发布于:2023-12-04 20:20:23,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1662108.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:用户名   时间   帖子   作者   内容

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!