公开的中文日记数据集合的爬取

本文介绍了作者如何使用Python爬虫技术,针对拉普达日记网站进行数据爬取,创建一个带有标签的日记文本训练集。通过分析网站结构,使用正则表达式提取日记内容,并区分公开与隐私日记,最终获取了约15000条日记数据,为后续的情感分析模型建立和训练提供基础。
摘要由CSDN通过智能技术生成
A.目标的选定

1.因为后面自己的毕业设计项目关于到了短日记中文情感分析模型的建立和训练,在网上收集训练集的时候找不到合适的日记训练集,找到的都是一些微博评论的数据,训练之后感觉这个微博评论数据集的准确率和适配性不是很好,于是产生了自己去制作一份带有标签的日记文本训练集,所以现在的任务是利用python爬虫爬取日记网站公开的日记内容

2.在网络上面经过一段时间的资料收集,最后确定了网站为拉普达日记(http://www.lapuda.org/)因为这里的日记内容是按照有序的数字顺序存储的,这样有利于爬虫机械化的爬取数据

image-20201118110433995

B.目标的可行性分析

1.对于最新的一篇日记(http://www.lapuda.org/diary/130407/)首先我们先使用postman不携带任何参数去实现能否获得网页,答案是不能,在进过一番的测试之后,发现只要能携带Cookie头文件就能很好的获得网页的源代码

2.在阅读源代码后,锁定文本日记的内容在一个pre标签里面,这里我采用了正则表达式来对HTML代码进行处理得到文本日记正则表达式为
(?<=pre>)([\s\S]?)(?=<),
在这里有一个知识点,首先我使用的是
(?<=pre>)(.
?)(?=<)
发现这个换行数据不能获取到,只能获取到一行的文本,在网络上面搜索了资料后发现使用上面的那个正则表达式能够获取到所有的文本信息

在这里插入图片描述

3.因为按照顺序来说有些日记是属于隐私日记,源代码里面没有文本日记,所有应该找到一种方法去区分成功这两种日记(公开的日记和隐私的日记),在阅读隐私日记的HTML源代码后,我发现在隐私日记里面比公开的多(登录可查看更多)的文本,那么我们用正则表达式去写登录可查看更多.*,这样我们就能区别出这两种数据了

c.爬虫代码的编写

1.首先定义一个获取文本信息的函数,能够初步得到去除空格和换行的文本

def get_diary(url):
    #定义头部信息,Cookie需要自己去看网站里面自己的Cookie
    headers = 
    {
   'Cookie':
 'Agent':"http://www.lapuda.org/diary/130223/",
 "Referer":"http://www.lapuda.org/diary/130223/"
               }
    #发送请求获得代码
    r=requests.get(url, headers=headers,allow_redirects=False)   
    r.encoding=r.apparent_encoding
    print(r)
    #重定向返回0
    if r.status_code==302:
        return 0
    test=re.findall(r'登录可查看更多.*',r.text)
    #私密日记返回值为0
    if len(test)!=0:
        return 0
    #获取里面的日记信息并初步清除换行和空格
    text=(re.findall(r'(?<=pre>)([\s\S]*?)(?=<)',r.text))
    text[0]=text[0].replace
  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值