杰洛特的Python之旅01_抓取微信性别数据在web上展现饼图
思路:
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上展现饼图相关推荐
- 用python通过selenium自动化测试抓取天猫店铺数据
用python通过selenium自动化测试抓取天猫店铺数据 运行的环境在win10,软件用的是vscode.大家平常在抓取天猫店铺的时候登陆后会需要验证,我的方法是通过谷歌插件跳过天猫的登陆. 首先 ...
- Python中使用PhantomJS抓取Javascript网页数据
有些网页不是静态加载的,而是通过javascirpt函数动态加载网页,比如下面这个网页,表格中的看涨合约和看跌合约的数据都是通过javascirpt函数从后台加载.仅仅使用beautifulsoup并 ...
- Python项目实战:抓取微信公众号账号信息
搜狗微信搜索提供两种类型的关键词搜索,一种是搜索公众号文章内容,另一种是直接搜索微信公众号.通过微信公众号搜索可以获取公众号的基本信息及最近发布的10条文章,今天来抓取一下微信公众号的账号信息( 爬虫 ...
- Python案例学习:抓取网页表格数据解析并写入Excel
三年多没写博客了,原因是因为我转行了,经历了很长的低谷,那段时间从不看博客,今天打开来看,回复了一些评论,很抱歉,有些网友的评论没有及时回复.最近开始想写代码了~ 最近看基金股票,想抓取一些行业当天的 ...
- python抓取微信朋友圈动态_2018最全如何利用Python网络爬虫抓取微信朋友圈的动态...
今天小编给大家分享一下如何利用Python网络爬虫抓取微信朋友圈的动态信息,实际上如果单独的去爬取朋友圈的话,难度会非常大,因为微信没有提供向网易云音乐这样的API接口,所以很容易找不到门.不过不要慌 ...
- python爬虫能爬取微信密码吗_如何利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例...
今天我们继续focus on微信,不过这次给大家带来的是利用Python网络爬虫抓取微信好友总数量和微信好友男女性别的分布情况.代码实现蛮简单的,具体的教程如下. 相信大家都知道,直接通过网页抓取微信 ...
- 小猪的Python学习之旅 —— 20.抓取Gank.io所有数据存储到MySQL中
小猪的Python学习之旅 -- 20.抓取Gank.io所有数据存储到MySQL中 标签:Python 一句话概括本文: 内容较多,建议先mark后看,讲解了一波MySQL安装,基本操作,语法速成, ...
- jupyter分割代码块_科研分享—Python根据关键词自动抓取Pubmed文献标题(附全部代码)文末有福利...
写在前面:接触Python应该是8月初的一篇公众号文章,大致内容是使用py爬取数据库并汇总到本地.正好手头需要对某个领域的文献进行调研,不妨学习一下. 什么是Python? 百度说:Python (计 ...
- python爬取百度贴吧中的所有邮箱_使用 Python 编写多线程爬虫抓取百度贴吧邮箱与手机号...
原标题:使用 Python 编写多线程爬虫抓取百度贴吧邮箱与手机号 不知道大家过年都是怎么过的,反正栏主是在家睡了一天,醒来的时候登QQ发现有人找我要一份贴吧爬虫的源代码,想起之前练手的时候写过一个抓 ...
最新文章
- QuadricSLAM: 面向机器人的物体级语义SLAM系统
- 深层神经网络中的前向传播
- Java项目导出为可执行jar包,并在windows/linux下运行
- 不停刷朋友圈的人_不停刷新闻、朋友圈、微信群的朋友,休息一下,看多了伤身!...
- 全套学习!java排序sort方法
- 第七章:nginx的rewrite规则详解
- oracle存储tar,Linux环境使用TAR命令快速部署安装Oracle
- itext-2.1.7.jar
- 网络安全相关行业必备网站
- linux中安装,编译时调用,运行时调用,更新共享库
- poj 2479 Maximum sum(递推)
- java queue的实例化_如何在java中实例化Queue对象?
- day-60Django
- 华为存储学习笔记-3
- python表示倍数的英语句型_英语倍数表达法
- 外卖返利cps小程序path
- 输入时(hour)、分(minute)、秒(second)的一个具体时间,要求打印出它的下一秒出来(一天24小时)。 例如输入的是23时59分59秒,则输出00:00:00
- 获取焦点(onFocus)和失去焦点(onBlur) (js)
- vscode怎么运行android项目,windows + flutter +android+ vscode 安装配置运行流程(详细版本)...
- 蓝牙版本应该如何选择
热门文章
- C++ 入门基础 取余数的应用价值
- 19. RDMA之iWARP Soft-iWARP
- 第6章 项目整体管理
- win系统的VBS脚本简易教程
- 打开模拟器上app的文件位置方法
- NLP领域表达退化各向异性理解及对应策略总结
- 基于JAVA高铁在线购票系统计算机毕业设计源码+数据库+lw文档+系统+部署
- logstash问题记录:Attempted to resurrect connection to dead ES instance, but got an error
- 【后台弹窗】应用跳转直通车--通知栏通知跳转后台应用
- 2020美容师(初级)模拟考试及美容师(初级)复审模拟考试