从零开始爬草榴成人文学 (2) – 分析

Categories Python
从零开始爬草榴成人文学 (2) – 分析

前文介绍了Scrapy爬取CL的成人文学区文章列表,本文介绍如何进行一些简单的数据分析。本文为分析过程中记录的交互式笔记。

说明

本文对X榴成人文学区抓取文章标题2000条信息进行分析.抓取的数据格式为:

  • lit_type
  • lit_title
  • lit_url
  • lit_writer
  • lit_submit
  • lit_comments
  • lit_last_comments

存储在MongoDB实验云存储上。 使用pymongo前安装

pip install pymongo dnspython

先导入必要的库,并对画图做一些基本的配置

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import pymongo
from pandas.io.json import json_normalize

plt.style.use('ggplot')
plt.rc('figure', figsize=(15, 15))  #把plt默认的图片size调大一点
plt.rcParams['font.sans-serif'] = ['SimSun']
plt.rcParams['font.serif'] = ['SimSun']
plt.rcParams['axes.unicode_minus'] = False
plt.rcParams["figure.dpi"] = False # 解决保存图像是负号'-'显示为方块的问题
%matplotlib inline

数据读取

从数据库中读取所有的文章数据,并格式化到Pandas的DataFrame里

client = pymongo.MongoClient("mongodb+srv://用户名:密码@xxxx.mongodb.net/test?retryWrites=true&w=majority")
db = client['t66y']
sheets = db['main']
data = sheets.find()
items = pd.DataFrame(list(data))
client.close()

对数据做一些筛选处理,前20个数据应该是网站的公告,丢掉了事。另外将一些文本格式的日期形式做一下转换,转换为datetime格式,将评论数量转换为数字格式。

items.drop([i for i in range(0,21)],inplace=True)
items['lit_submit'] = pd.to_datetime(items['lit_submit'])
items['lit_comments'] = pd.to_numeric(items['lit_comments'])
items['lit_title'] = items['lit_title'].str.strip()

数据分析

做完以上数据转化后我们简单做一些分析,首先看一下哪个作者是最高产的?原理是“东京热”网友

items['lit_writer'].value_counts().head(20).plot(kind='bar')

哪个时间段发布和评论小黄文最集中?

items['lit_submit'].value_counts().plot(kind='line',subplots=False)
items['lit_last_comments'].value_counts().plot(kind='line',subplots=False)

评论看最热文章?可以看出连载文章是评率最多的,也许是因为作者用

items_title_idxed = items.set_index('lit_title').sort_values(by='lit_comments',ascending=False).head(10)
items_title_idxed['lit_comments'].plot(kind='bar')

以上就是一些简单的分析。这些数据还可以做哪些分析?或许可以用自然语言处理的一些工具做如下处理

  • 哪类文章最受欢迎?
  • 哪类文章创作率最高?
  • 能不能自己创作小黄文?

待续……


版权声明:本站文章除非特别声明,均为L&H原创。允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。

本文链接:从零开始爬草榴成人文学 (2) – 分析 @ L&H site


发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据