前些日子入了PS4的某著名游戏2017, 寻小妖刷ML中. 不得不说刚开始的时候,涛哥坤哥的解说感觉颇为带感. 一个月后...还是关音量吧,解说词太贫乏了
在寻小妖的过程中, 突发奇想看看某著名论坛的数据有没有什么特别的地方,于是scrapy走起...
被服务器ban了几次后, 扒拉下来2w多主贴,30多w回帖存入sqlite数据库
[数据清洗]
使用xpath清洗HTML代码, 筛出板块,帖子内容,作者,时间等等等
删掉爬虫乱跑其他板块扒拉下来的帖子
这第一步清洗说起来简单, 倒也花了不少时间. 结果剩下的如下
sqladmin不支持中文我也没办法 -_-!
[分析]
说实话刚拿到这些数据,我是一脸矇逼的, 当初匆匆上马scrapy, 完全没考虑到分析什么, 数据也抓得不多. 算了,看看能做什么吧, 懒得再跑爬虫,省电
首先看到, 部分帖子作者给标上了主题, 如[PS4][XBOX360], 统计一下各主机的帖子吧:
select category, count(0) from articles group by category
结果
其他是什么鬼? 删了 :-(
看到大量空的category, 我上去论坛看了一下, 原来大部分作者发帖都是懒得选择主题的, 象"pes2017真的很棒一个**老粉自白"这种, 自称老粉的绝壁是PS主机用户啊.
那就尝试一下把category是空的帖子做下分类吧.
文档分类, 词语向量跑不掉, jieba分词走起
conn = sqlite3.connect('expData2.db') conn.text_factory = str rows = conn.execute('select * from articles ').fetchall() conn.close() rmvList = ['x','y','uj'] #移除部分无用词 f1=codecs.open('forum_all.txt','w','utf-8') j = 1 for row in rows: wList = '' words = row[2] + row[5] keys = jieba.posseg.cut(words) for k in keys: if k.flag not in rmvList: wList += ' ' + k.word f1.write(wList) f1.write('\n') j += 1 if j%1000 ==0: print 'Write %dk records...' %(j/1000) f1.close() print 'Completed.'