思路:

1、通过wxpy获取微信的friends数据

2、通过pymongo存储数据:人员性别数据

3、在pymongo中处理数据:按性别汇总数据

4、利用matplotlib来绘图

5、计划利用djongo来做web来展现数据:简单的点展现性别饼图

第一步:wx.py生成图片保存到本地

from wxpy import *

import pymongo

from pylab import *

mpl.rcParams['font.sans-serif']=['SimHei']

# 上面两行代码解决matplotlib绘图不能显示中文问题

import matplotlib.pyplot as plt

bot=Bot(cache_path ="D:\workplace\Python\Scripts\wxpy.pkl")#连接微信

my_friends=bot.friends() #sex province

# print(my_friends[0].name)

# print(my_friends[0].sex)

print(len(my_friends))

mylist=[]

m=0

for m in range(len(my_friends)):

v_data=[{"name":my_friends[m].name,"sex":my_friends[m].sex}]

mylist=mylist+v_data

m=m+1

#######################################################################################################

#以上获取微信好友数据,并组合成一个集合

#######################################################################################################

myclient=pymongo.MongoClient("mongodb://localhost:27017/")

mydb=myclient["flydb"]

mycol=mydb["flysite"]

# x=mycol.insert_many(mylist) #会出现反复运行插入操作

print(mycol)

for x in mycol.find():

print(x)

print(mycol.aggregate([{"$group":{"_id":"$sex","personCount":{"$sum":1}}}]))

cursor=mycol.aggregate([{"$group":{"_id":"$sex","personCount":{"$sum":1}}}])

for c in cursor:

v_list=c.values()

v_list=list(v_list)

print(v_list[0])

if list(v_list)[0]==1:

v_men=list(v_list)[1]

elif list(v_list)[0]==2 :

v_women = list(v_list)[1]

elif list(v_list)[0] == 0:

v_other = list(v_list)[1]

print(v_men,v_women,v_other)

#######################################################################################################

##获取汇总数据,类别和值的传入方式需要能适配,目前是固定死的传入方式

#######################################################################################################

labels=['男性','女性','其他']

sizes=[v_men,v_women,v_other]

explode=(0,0.1,0)

fig1,ax1=plt.subplots()

ax1.pie(sizes,explode=explode,labels=labels,autopct='%1.1f%%',shadow=True,startangle=90)

ax1.axis('equal')

plt.legend()

plt.savefig("D:\\Program Files\\PyCharm 2019.1.1\\untitled1\\static\\sex.png")

###########必须用双杠\\,不然报错,Python中\代表转义

plt.show()

plt.close()

#######################################################################################################

##制作饼图

#######################################################################################################

第二步:django中调用本地图片

views.py

from django.shortcuts import render_to_response
def index(request):return render_to_response('index.html')

index.html

<h1>微信性别比例</h1>
<img src="/static/sex.png">

urls.py

from laomomo import views  #导入views模块
from django.conf.urls import urlurlpatterns=[url(r'^',views.index),#配置当访问index/时去调用views下的index方法
]

settings.py最后一行增加下述两行,用来默认图片路径,解决图片不现实的问题

STATIC_URL = '/static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, "static"),
]

杰洛特的Python之旅01_抓取微信性别数据在web上展现饼图相关推荐

  1. 用python通过selenium自动化测试抓取天猫店铺数据

    用python通过selenium自动化测试抓取天猫店铺数据 运行的环境在win10,软件用的是vscode.大家平常在抓取天猫店铺的时候登陆后会需要验证,我的方法是通过谷歌插件跳过天猫的登陆. 首先 ...

  2. Python中使用PhantomJS抓取Javascript网页数据

    有些网页不是静态加载的,而是通过javascirpt函数动态加载网页,比如下面这个网页,表格中的看涨合约和看跌合约的数据都是通过javascirpt函数从后台加载.仅仅使用beautifulsoup并 ...

  3. Python项目实战:抓取微信公众号账号信息

    搜狗微信搜索提供两种类型的关键词搜索,一种是搜索公众号文章内容,另一种是直接搜索微信公众号.通过微信公众号搜索可以获取公众号的基本信息及最近发布的10条文章,今天来抓取一下微信公众号的账号信息( 爬虫 ...

  4. Python案例学习:抓取网页表格数据解析并写入Excel

    三年多没写博客了,原因是因为我转行了,经历了很长的低谷,那段时间从不看博客,今天打开来看,回复了一些评论,很抱歉,有些网友的评论没有及时回复.最近开始想写代码了~ 最近看基金股票,想抓取一些行业当天的 ...

  5. python抓取微信朋友圈动态_2018最全如何利用Python网络爬虫抓取微信朋友圈的动态...

    今天小编给大家分享一下如何利用Python网络爬虫抓取微信朋友圈的动态信息,实际上如果单独的去爬取朋友圈的话,难度会非常大,因为微信没有提供向网易云音乐这样的API接口,所以很容易找不到门.不过不要慌 ...

  6. python爬虫能爬取微信密码吗_如何利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例...

    今天我们继续focus on微信,不过这次给大家带来的是利用Python网络爬虫抓取微信好友总数量和微信好友男女性别的分布情况.代码实现蛮简单的,具体的教程如下. 相信大家都知道,直接通过网页抓取微信 ...

  7. 小猪的Python学习之旅 —— 20.抓取Gank.io所有数据存储到MySQL中

    小猪的Python学习之旅 -- 20.抓取Gank.io所有数据存储到MySQL中 标签:Python 一句话概括本文: 内容较多,建议先mark后看,讲解了一波MySQL安装,基本操作,语法速成, ...

  8. jupyter分割代码块_科研分享—Python根据关键词自动抓取Pubmed文献标题(附全部代码)文末有福利...

    写在前面:接触Python应该是8月初的一篇公众号文章,大致内容是使用py爬取数据库并汇总到本地.正好手头需要对某个领域的文献进行调研,不妨学习一下. 什么是Python? 百度说:Python (计 ...

  9. python爬取百度贴吧中的所有邮箱_使用 Python 编写多线程爬虫抓取百度贴吧邮箱与手机号...

    原标题:使用 Python 编写多线程爬虫抓取百度贴吧邮箱与手机号 不知道大家过年都是怎么过的,反正栏主是在家睡了一天,醒来的时候登QQ发现有人找我要一份贴吧爬虫的源代码,想起之前练手的时候写过一个抓 ...

最新文章

  1. QuadricSLAM: 面向机器人的物体级语义SLAM系统
  2. 深层神经网络中的前向传播
  3. Java项目导出为可执行jar包,并在windows/linux下运行
  4. 不停刷朋友圈的人_不停刷新闻、朋友圈、微信群的朋友,休息一下,看多了伤身!...
  5. 全套学习!java排序sort方法
  6. 第七章:nginx的rewrite规则详解
  7. oracle存储tar,Linux环境使用TAR命令快速部署安装Oracle
  8. itext-2.1.7.jar
  9. 网络安全相关行业必备网站
  10. linux中安装,编译时调用,运行时调用,更新共享库
  11. poj 2479 Maximum sum(递推)
  12. java queue的实例化_如何在java中实例化Queue对象?
  13. day-60Django
  14. 华为存储学习笔记-3
  15. python表示倍数的英语句型_英语倍数表达法
  16. 外卖返利cps小程序path
  17. 输入时(hour)、分(minute)、秒(second)的一个具体时间,要求打印出它的下一秒出来(一天24小时)。 例如输入的是23时59分59秒,则输出00:00:00
  18. 获取焦点(onFocus)和失去焦点(onBlur) (js)
  19. vscode怎么运行android项目,windows + flutter +android+ vscode 安装配置运行流程(详细版本)...
  20. 蓝牙版本应该如何选择

热门文章

  1. C++ 入门基础 取余数的应用价值
  2. 19. RDMA之iWARP Soft-iWARP
  3. 第6章 项目整体管理
  4. win系统的VBS脚本简易教程
  5. 打开模拟器上app的文件位置方法
  6. NLP领域表达退化各向异性理解及对应策略总结
  7. 基于JAVA高铁在线购票系统计算机毕业设计源码+数据库+lw文档+系统+部署
  8. logstash问题记录:Attempted to resurrect connection to dead ES instance, but got an error
  9. 【后台弹窗】应用跳转直通车--通知栏通知跳转后台应用
  10. 2020美容师(初级)模拟考试及美容师(初级)复审模拟考试