【Python爬虫】利用BeautifulSoup处理html/xml格式古文数据库(论语、老子、庄子、韩非子等)并用pandas将其转换成csv格式

最近遇到了与古文NLP有关的任务,在这里记录一下用beautifulsoup处理html格式的古文数据集的过程。

        古文数据来源于中文核心典籍CCT,链接:中文核心典籍 这个网站中提供了包括《周易》、《论语》、《老子》、《韩非子》等在内的中国古文典籍。

点击“下载全部”后会得到一个包含所有典籍的文件夹,其中对于每一部典籍又是一个单独的文件夹,里面存放了html格式的各章原文。文件结构如下:

         下面使用beautilfulsoup来进行解析:

from bs4 import BeautifulSoup
html_doc=open('./core_texts/han_fei_zi/0001.htm','r',encoding='utf-8')
soup = BeautifulSoup(html_doc, 'html.parser')
print(soup)

得到结果如下:

 

发现在一章文章中,各节之间有分隔符<br/> 据此我们可以先将soup转换为字符串格式,然后用split函数将每一节分开。同时注意到,在html格式中会有<html><head>之类与html格式有关的的字符在首尾分布,因此在转换成字符串列表后,将前几项和后几项剔除即可。代码如下:

text_list = str(soup)
text_list = text_list.split('<br/>')
text_list = text_list[3:-1]
print(text_list)

 在这里即成功地将文本转换为字符串,并把每一节区分开了。结果如下:

 最后一步,将数据集添加我后续分类任务中需要使用到的label,并用pandas将其写入到csv格式的文件中。代码如下:

# 在这里设置label!!!
label = [2 for x in range(len(total_list))] # 韩非子数据集,属于法家
dic = {'sentence':total_list, 'label':label}
df = pd.DataFrame(dic)
df.to_csv('./hanfeizi.csv')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值