前言

文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

作者: 清风小筑

PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

http://note.youdao.com/noteshare?id=3054cce4add8a909e784ad934f956cef

知乎,可以说是国内目前最大的问答类社区。与微博、贴吧等产品不同,知乎上面的内容更多是用户针对特定的问题分享知识、经验和见解。

大V的关联

首先给大家看的是知乎上粉丝数前50用户的关系图:

图中的线是用户之间的相互关注的关系。这三张图的差别只在圆圈的大小上,依次分别代表:粉丝数、连入度(被图中其他人关注的数量)、连出度(关注图中其他人的数量)

比较明显的是,像知乎日报、刘看山、丁香医生这类普通用户关注较多的“机构号”,在大V中的受关注度并不高。

这张图是通过一个叫做 Gephi 的软件,基于 Python 采集下来的数据做出来的。其中圈的颜色是 Gephi 根据关联关系自动聚合的结果。

谁是大V

知乎的四大指标:关注、赞同、感谢、收藏。我们分别看下以不同指标排行的“头部用户”:

其中,张佳玮可以说是非常突出了。(这个名字好熟悉……还记得之前的虎扑分析吗?)

官方收录回答数,张佳玮还是遥遥领先,收录文章数也榜上有名。

如果不论质量,仅看数量的话:

把这几组数据合成了两张三维散点图:

图中选取的数据为关注数大于1万的用户。在项目里有可以交互的网页版本,可以更直观的查看这个分布图。

大V的热情在消退?

上面几张图是对目前关注数超10万的用户的历史发布数据进行的统计。从图上来看,2015年大V们更热衷于回答,后来则大都改去写专栏文章了。从趋势来看,似乎大V们发文的频率已不再增长。不过这并不能直接推断知乎的整体热度,也可能内容的产出更分散于不同用户了呢?这就只有知乎官方才有权威数据了。

用户爱看什么?

这些关注度最高专栏和收藏夹,里面有你关注的吗?

最后,这是一个以关注数超1万的用户的个人简介做出来的词云:

代码

 # coding:utf8
# 抓取粉丝数过 1w 用户
import requests
import pymongo
import time
import pickle

def get_ready(ch='user_pd',dbname='test'):
'''数据库调用'''
global mycol, myclient,myhp
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient[dbname]
mycol = mydb[ch]
get_ready()
ss = mycol.find({})

se = {1,} # 去重集合
se2 = ['GOUKI9999','zhang-jia-wei'] # 爬取的列表
# with open(r'C:\Users\yc\Desktop\used.txt', 'rb') as f: # 读取
# used = pickle.load(f)
used={1,}
sed = {}
for s in ss:
if s['follower_count']>=10000: # 粉丝数大于10000
sed[s['user_id']] = sed.get(s['user_id'],0) + 1
if sed[s['user_id']] == 1:
se.add(s['user_id'])
se2.append(s['user_id'])
leng = len(se2)
print(leng)
proxies = {
"http": "http://spiderbeg:pythonbe@106.52.85.210:8000",
"https": "http://spiderbeg:pythonbe@106.52.85.210:8000",
}
headers = {
'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36',
'cookie':'your_cookie(用户主页面)'
}
for i,url_id in enumerate(se2): # 爬取
if i>=0:
print(i,' ', end='') # url个数
if url_id not in used: # 是否使用过
used.add(url_id)
nums = 500
off = 0 while True:
url2 = 'https://www.zhihu.com/api/v4/members/' + url_id + '/followees?include=data%5B*%5D.answer_count%2Carticles_count%2Cgender%2Cfollower_count%2Cis_followed%2Cis_following%2Cbadge%5B%3F(type%3Dbest_answerer)%5D.topics&offset=' + str(off) + '&limit=' + str(nums)
r2 = requests.get(url2, headers=headers,proxies=proxies)
time.sleep(0.5)
c = 0
if 'error' in r2.json():
if r2.json()['error']['code'] in {310000, 310001}:
break
else:
raise NameError('页面错误')
used.add(url_id) # 判断是否使用
for d in r2.json()['data']:
z = {}
c+=1
z['user_id'] = d['url_token']
z['name'] = d['name']
z['headline'] = d['headline']
z['follower_count'] = d['follower_count']
z['answer_count'] = d['answer_count']
z['articles_count'] = d['articles_count'] # if d['articles_count'] else 0
z['from'] = url_id # 谁的关注列表
if d['follower_count']>=10000 and d['url_token'] not in se and d['url_token'] not in used: # 粉丝大于 1w,则爬取
se.add(d['url_token'])
se2.append(d['url_token'])
mycol.insert_one(z) # 插入数据
if r2.json()["paging"]['is_end'] == False:
nums+=500
off+=500
elif r2.json()["paging"]['is_end'] == True:
break
else:
print(r2.json)
break

Python数据分析揭秘知乎大V的小秘密的更多相关文章

  1. Python数据分析练手:分析知乎大V

    原文链接:https://zhuanlan.zhihu.com/p/92768131?utm_source=tuicool&utm_medium=referral 知乎,可以说是国内目前最大的 ...

  2. 16、爬取知乎大v张佳玮的文章“标题”、“摘要”、“链接”,并存储到本地文件

    爬取知乎大v张佳玮的文章“标题”.“摘要”.“链接”,并存储到本地文件 # 爬取知乎大v张佳玮的文章“标题”.“摘要”.“链接”,并存储到本地文件 # URL https://www.zhihu.co ...

  3. 为什么学习python?(知乎大神的回答)

    学习PHP 是因为得到一份工作 学习Java 是因为他们选修了计算机科学这门课程 学习python 是因为爱这门语言,因为寻求美

  4. 学一手,知乎大V(轮子哥)当年靠它进微软亚洲研究院

    前言 vczh本名陈梓瀚,不过大家更愿意叫他「轮子哥」,毕业于华南理工大学软件学院.vczh大学时代就在微软实习,毕业后即加入微软.开始时是在微软上海,后来进入北京的微软亚洲研究院.现已移居美国西雅图 ...

  5. 为你揭秘知乎是如何搞AI的——窥大厂 | 数智方法论第1期

    文章发布于公号[数智物语] (ID:decision_engine),关注公号不错过每一篇干货. 数智物语(公众号ID:decision_engine)出品 策划.编写:卷毛雅各布 「我们相信,在垃圾 ...

  6. 《Python金融大数据分析》高清PDF版|百度网盘免费下载|Python数据分析

    <Python金融大数据分析>高清PDF版|百度网盘免费下载|Python数据分析 提取码:mfku 内容简介 唯一一本详细讲解使用Python分析处理金融大数据的专业图书:金融应用开发领 ...

  7. 万字长文,Python数据分析实战,使用Pandas进行数据分析

    文章目录 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却不知道如何去学习更加高深的知识.那么针对这三类人,我给大家 ...

  8. (python数据分析)第03章 Python的数据结构、函数和文件

    本章讨论Python的内置功能,这些功能本书会用到很多.虽然扩展库,比如pandas和Numpy,使处理大数据集很方便,但它们是和Python的内置数据处理工具一同使用的. 我们会从Python最基础 ...

  9. 小白学 Python 数据分析(10):Pandas (九)数据运算

    人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...

随机推荐

  1. 阿里面试官:字符串在JVM中如何存放?90%的人就真的只回答在哪里存放

    目录: 一道面试题的引出 案例分析 intern 源码分析 总结 1. 一道面试题的引出 在面试BAT这种一线大厂时,如果面试官问道:字符串在 JVM 中如何存放?大多数人能顺利的给出如下答案: 字符 ...

  2. SpringBoot控制台版图书借阅程序

    // 实验存档... 效果图: 完整程序:https://pan.baidu.com/s/1-d1J90dkEtM0WKkABu0K0Q 提取码:hcnm DAO层代码由MyBatis Generat ...

  3. (转)理解滑动平均(exponential moving average)

    转自:理解滑动平均(exponential moving average) 1. 用滑动平均估计局部均值 滑动平均(exponential moving average),或者叫做指数加权平均(exp ...

  4. SAP记账期间变式

        记帐期间变式能够控制每个公司代码中打开的记账期间,包括正常记账期间和特别记账期间.可以为企业组织架构中的每个公司代码定义一个归其单独使用的记账期间变式.      记账期间变式独立于会计年度变 ...

  5. Docker启动守护式容器

    目录 启动守护式容器 查看容器日志 docker后台运行 查看容器内运行的进程 ​查看容器内部细节 进入正在运行的容器并以命令行交互 重新进入 上述两个区别 从容器内拷贝文件到主机上 启动守护式容器 ...

  6. 2-3 远程管理命令-SSH工作方式简介

    03.远程登录和复制文件 序号 命令 对应英文 作用 01 ssh 用户名@ip secure shell 关机/重启 02 scp 用户名@ip:用户名或路径 用户名@ip:文件名或路径 secur ...

  7. ACM 基本输入

    单次输入 C语言 int a,b; scanf("%d %d",&a,&b); C++语言 int a,b; cin >> a >> b; ...

  8. 【python3基础】python3 神坑笔记

    目录 os 篇 os.listdir(path) 运算符篇 is vs. == 实例 1:判断两个整数相等 实例 2:argparse 传参 实例 3:np.where 命令行参数篇 Referenc ...

  9. 如何在文本编辑器中实现时间复杂度O(n/m)的搜索功能? BM算法

    //字符串匹配 public class StringCmp { //约定:A主串长 n ,B模式串 长m.要求:在A串中找到B串匹配的下标 //BM算法:从B串和A串尾部开始比较,希望一次将B串向后 ...

  10. Java核心(一)深入理解BIO、NIO、AIO

    目标: BIO.NIO.AIO 的区别是什么? 同/异步.阻/非阻塞的区别是什么? 文件读写最优雅的实现方式是什么? NIO 如何实现多路复用功能? 一,IO的介绍: (1)IO的全称其实是:Inpu ...