Python 正则表达式查找

import re

import csv

# data = open('tieba01.txt', 'r', encoding='UTF-8').readlines()

# print(len(data))

with open('tieba01.txt', 'r', encoding='UTF-8') as f:

    source= f.read()


#search函数只能从左至右找出第一个最大的匹配,findall函数可以找出所有的匹配,并返回一个list列表

# findall(pattern, string, flags=0)  re.S忽略换行

result_list= []

username_list= re.findall('username="(.*?)"',source,re.S)#

content_list= re.findall('d_post_content j_d_post_content " style="display:;">(.*?)</div>', source, re.S)

reply_time_list=re.findall('class="tail-info">(2020.*?)<', source, re.S)

def clear_content(src):

    newstr= re.sub(r'(<img class.*?>)', '', src) #sub是substitute的所写,表示替换;re.sub(pattern, repl, string, count=0, flags=0)

    return newstr

print(username_list[0],content_list[12])

for iin range(len(username_list)):

    clearstr= clear_content(content_list[i])

    result= {'username':username_list[i],

              'content':clearstr,

              'time': reply_time_list[i]}

    result_list.append(result)

with open('tieba01.csv','w',newline='',encoding='utf-8-sig') as f:

    csv_write= csv.writer(f)

    writer= csv.DictWriter(f,fieldnames=['username','content','time'])

    writer.writeheader()

    writer.writerows(result_list)

# with open('E:/dst.csv', 'wb') as dstfile:  # 写入方式选择wb,否则有空行

#    writer = csv.DictWriter(dstfile, fieldnames=['username','content','time'])

#    writer.writeheader()  # 写入表头

#    writer.writerows(data)  # 批量写入

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。