IT@程序员猿媛数据蛙数据分析每周作业数据蛙强化课程第一期

《数据蛙每周交作业小组》截至19年7月31日提交作业情况

2019-07-31  本文已影响158人  Chad你要加油

前言:

相信小伙伴们还记得《数据蛙每周交作业小组》专栏的群主凡人求索,组织了数据蛙每周交作业小组小组,通过有计划的输入,每周总结一篇数据类文章,分别投稿到疯狂数据分析专题,并坚持一年时间,具体计划请看零基础入门数据分析成员的新年计划
《数据蛙每周交作业小组》已经成立有9个月多,目前发现文章的提交数量逐渐下降,在此想呼吁那些在这个专栏投过稿的小伙伴能重拾自己的学习热情,当初立下的Flag,让我们坚持下去,暗暗告诉自己:2019年,我一定要好好学习,天天向上,完成Flag!希望有更多的新朋友加入我们队伍中。
小编我在这做了一个爬虫+简单的分析,大家可以往下拉看看。

系统环境:

64位win10系统,64位python3.6,IDE位pycharm

数据获取

此前群主是采用了requests + BeautifulSoup + pymysql爬取数据蛙每周交作业小组一周提交的作业,然后保存至数据库中。
小编是用scrapy+scrapyd+pymysql 实现,为什么要用scrapyd呢?可以远程方便管理该爬虫,scrapyd还有定时的功能,另外还要实现数据爬下来后,通过pandas库做处理,做一个简易的数据报告,每周通过邮件或微信自动推送,因公司项目比较多,都是利用空余去弄,也会尽快实现这个功能,话不多说,我们看看下面。

爬取字段

name:作者昵称
title:文章标题
publish_time:发布文章时间
word_age:文章字数
comments_count:该篇文章获得的评论数
likes_count:该篇文章获得的喜欢数
views_count: 该篇文章获得的阅读数
URL: 该篇文章的链接

部分代码:

    def start_requests(self):

        for i in range(1,88):
            yield Request(url=self.base_url.format(page=i),
                          callback=self.start_requests_two,
                          headers=self.headers)


    def start_requests_two(self, response):

        doc = pq(response.text)
        container = doc('li .title')
        for item in container.items():
            next_url = 'https://www.jianshu.com' + item.attr('href').split('#')[0]
            yield Request(url=next_url,
                          callback=self.parse,
                          headers = {'user-agent': helper.set_user_agent()}
                          )

    def parse(self, response):
        item = JianshuItem()
        if response:
            print(response.url)
            doc = pq(response.text)
            item['title'] = doc(' div.post  div.article > h1').text() if doc(' div.post  div.article > h1').text() else  ''
            item['name'] = doc('.info .name a').text() if doc('.info .name a').text() else  ''
            item['publish_time'] = helper.tran_time(doc('.publish-time').text()) if doc('.publish-time').text() else  ''
            note = doc('script ').text().split(';')
            notes = json.loads(note[6].split("(function(){ var bp = document.createElement('script')")[0])
            item['comments_count'] = notes['note']['comments_count'] if notes else  ''
            item['likes_count'] = notes['note']['likes_count'] if notes else  ''
            item['word_age'] = notes['note']['public_wordage'] if notes else  ''
            item['views_count'] = notes['note']['views_count'] if notes else  ''
            item['URL'] = response.url
            yield item

查看作业的整体情况

import pandas as pd 
file = '/jianshudata.csv'
df = pd.read_csv(file)
df.info() 
查看作业的整体情况
截止本周一共提交了885篇文章,获取数据样本:
数据样本
查看有多少位小组成员向数据蛙每周交作业小组提交过文章:
共有73位小组成员

数据清洗:

把publish_time转datetime类型,再查看整体
统计文章发布篇数:
查看文章提交最多的前十名:
前十名

发布文章数最多的前十名分别是:cynthia猫 、1点点De小任性丶 、凡人求索 、Spareribs 、夜希辰 、奔走的蜗牛BI 、yimengtianya1 、Chad你要加油 、estate47 、孙小恒

作业提交时间幅度:

大部分人在周日提交作业


2019年的文章比2018年要多

我们看看谁的点赞数最多,看看前十名:

文章点赞数最多的前十名分别是:estate47、estate47、凡人求索 、凡人求索、凡人求索 、大石兄、 Hill_GM 、凡人求索、夜希辰、Chad你要加油

我们看看上周 '2019-07-22 - 2019-07-28',看看有哪些成员交作业了
有三名成员提交

提交作业成员分别是:夜希辰、凡人求索、奔走的蜗牛BI

上周作业情况暂时写到这,后续每周会持续更新,尽快把这个完善好。

添加公众号【数据蛙DataFrog】,加入学习交流群,我们一起学习共进步,2019齐加油
上一篇下一篇

猜你喜欢

热点阅读