当前位置: 首页 > news >正文

第一个微信项目

一、微信好友分析

步骤一:

需要下载wxpy库、openpyxl库和pandas库

 

步骤二:

读取微信好友信息,并存为excel文件

from wxpy import *

import openpyxl

import pandas as pd

 

def shuju():

bot=Bot(cache_path=True)

friend_all=bot.friends()

lis=[]

for a_friend in friend_all:

RemarkName=a_friend.raw.get('RemarkName',None)

UserName=a_friend.raw.get('UserName',None)

NickName=a_friend.raw.get('NickName',None)

Sex={1:"男",2:"女",0:"其他"}.get(a_friend.raw.get('Sex',None),None)

City=a_friend.raw.get('City',None)

Province=a_friend.raw.get('Province',None)

Signature=a_friend.raw.get('Signature',None)

HeadImgUrl=a_friend.raw.get('HeadImgUrl',None)

HeadImgFlag=a_friend.raw.get('HeadImgFlag',None)

list_0=[RemarkName,UserName,NickName,Sex,City,Province,Signature,HeadImgUrl,HeadImgFlag]

lis.append(list_0)

return lis

 

def save(u):

name=["RemarkName","UserName","NickName","Sex","City","Province","Signature","HeadImgUrl","HeadImgFlag"]

test=pd.DataFrame(columns=name,data=u)

test.to_excel('D:/pa.xlsx',encoding="gbk")

 

def main():

u=shuju()

save(u)

main()

文件部分内容如图:

 

步骤三:

统计微信人数、省市分布

from wxpy import *

bot=Bot(cache_path=True)

allfriend=bot.friends()

data=allfriend.stats_text(total=True,sex=True,top_provinces=30,top_cities=50)

print(data)

结果如下

panq 共有 233 位微信好友

 

男性: 89 (38.2%)

女性: 124 (53.2%)

 

TOP 30 省份

广东: 137 (58.80%)

Dubai: 2 (0.86%)

内蒙古: 2 (0.86%)

北京: 2 (0.86%)

山西: 1 (0.43%)

Arnsberg: 1 (0.43%)

Kildare: 1 (0.43%)

四川: 1 (0.43%)

Miyazaki-ken: 1 (0.43%)

Concordia: 1 (0.43%)

安徽: 1 (0.43%)

Dublin: 1 (0.43%)

Hamburg: 1 (0.43%)

Kyoto-fu: 1 (0.43%)

Kowloon City: 1 (0.43%)

香港: 1 (0.43%)

海南: 1 (0.43%)

Ansbach: 1 (0.43%)

Dubayy: 1 (0.43%)

Marseille: 1 (0.43%)

福建: 1 (0.43%)

Texas: 1 (0.43%)

Berlin: 1 (0.43%)

Lille: 1 (0.43%)

Nuremberg: 1 (0.43%)

Victoria: 1 (0.43%)

Paris: 1 (0.43%)

Saitama-ken: 1 (0.43%)

St. Peterburg: 1 (0.43%)

湖北: 1 (0.43%)

 

TOP 50 城市

肇庆: 63 (27.04%)

广州: 41 (17.60%)

揭阳: 6 (2.58%)

汕头: 5 (2.15%)

佛山: 4 (1.72%)

深圳: 3 (1.29%)

惠州: 2 (0.86%)

中山: 2 (0.86%)

阳江: 2 (0.86%)

茂名: 2 (0.86%)

太原: 1 (0.43%)

成都: 1 (0.43%)

东莞: 1 (0.43%)

Miyazaki-shi: 1 (0.43%)

汕尾: 1 (0.43%)

芜湖: 1 (0.43%)

Kyoto: 1 (0.43%)

临高: 1 (0.43%)

梅州: 1 (0.43%)

韶关: 1 (0.43%)

厦门: 1 (0.43%)

Houston: 1 (0.43%)

珠海: 1 (0.43%)

呼伦贝尔: 1 (0.43%)

朝阳: 1 (0.43%)

Melbourne: 1 (0.43%)

Kasukabe-shi: 1 (0.43%)

黄冈: 1 (0.43%)

河源: 1 (0.43%)

Perth: 1 (0.43%)

东城: 1 (0.43%)

赤峰: 1 (0.43%)

湛江: 1 (0.43%)

 

步骤四:

将好友的地区分布和好友签名特点做成词云

需要下载wordcloud库、matplotlib库、pandas库

好友签名词云

import pandas as pd

import matplotlib.pyplot as plt

from pandas import DataFrame

from pandas import read_excel

from wordcloud import WordCloud

df=read_excel('D:/pa.xlsx')

word_list=df['Signature'].fillna("0").tolist()

new_text=' '.join(word_list)

wordcloud=WordCloud(font_path='simhei.ttf',background_color="pink").generate(new_text)

plt.imshow(wordcloud)

plt.axis("off")

plt.show()

结果如图

 

地区词云

代码差不多,只是将Signature改为City

import pandas as pd

import matplotlib.pyplot as plt

from pandas import DataFrame

from pandas import read_excel

from wordcloud import WordCloud

df=read_excel('D:/pa.xlsx')

word_list=df['City'].fillna("0").tolist()

new_text=' '.join(word_list)

wordcloud=WordCloud(font_path='simhei.ttf',background_color="pink").generate(new_text)

plt.imshow(wordcloud)

plt.axis("off")

plt.show()

结果如图

 

二、微信机器人

使用的库:itchat,requests

代码

# -*- coding: utf-8 -*-

"""

Created on Mon Jun 3 19:36:07 2019

 

@author: history

"""

 

 

#-*- coding:utf-8 -*-

import itchat

import requests

 

def get_response(msg):

apiurl = 'http://i.itpk.cn/api.php' # //moli机器人的网址

data={

"question": msg, #//获取到聊天的文本信息

"api_key": "9ddf52cacd0ef429d1c63bf411b9bed6",

"api_secret": "n4gxkdyckd7p"

}

 

r=requests.post(apiurl,data=data) # //构造网络请求

return r.text

@itchat.msg_register(itchat.content.TEXT) # //好友消息的处理

def print_content(msg):

return get_response(msg['Text'])

@itchat.msg_register([itchat.content.TEXT], isGroupChat=True) #群消息的处理

def print_content(msg):

return get_response(msg['Text'])

itchat.auto_login(True) #自动登录

itchat.run() #//启动聊天机器人

看一下效果吧

 

哇,真的好好玩啊,哈哈哈哈,真会骂人。。。

转载于:https://www.cnblogs.com/panqiaoyan/p/10978255.html

相关文章:

  • web服务
  • 编程思想之多线程与多进程系列
  • aop 简单运用,traceId 简单实现,访问日志拦截,ip黑名单
  • MySQL学习笔记 初学基础篇
  • Linux磁盘及文件系统的管理
  • PC端和移动端测试区别
  • Zabbix 3.0 主备模式 [八]
  • 如何接入新连接
  • centos7 firewall操作
  • vscode 终端下载vue
  • ./和../以及/和~之间的区别
  • 2016.8.17服务器端数据库用户导入导出方法 expdp和impdp
  • 十年码农建议:写代码时应该反复问自己8个问题
  • quartz学习
  • 6.10 docker(四)进入容器
  • 【391天】每日项目总结系列128(2018.03.03)
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • echarts花样作死的坑
  • HTTP中GET与POST的区别 99%的错误认识
  • Javascript编码规范
  • js作用域和this的理解
  • nfs客户端进程变D,延伸linux的lock
  • php中curl和soap方式请求服务超时问题
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • Redux 中间件分析
  • scrapy学习之路4(itemloder的使用)
  • SpiderData 2019年2月13日 DApp数据排行榜
  • tweak 支持第三方库
  • windows下如何用phpstorm同步测试服务器
  • 前端
  • 前端存储 - localStorage
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 微服务入门【系列视频课程】
  • 微信小程序开发问题汇总
  • 在Mac OS X上安装 Ruby运行环境
  • 主流的CSS水平和垂直居中技术大全
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (bean配置类的注解开发)学习Spring的第十三天
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (C++)八皇后问题
  • (C语言)共用体union的用法举例
  • (Note)C++中的继承方式
  • (二)pulsar安装在独立的docker中,python测试
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (十三)Maven插件解析运行机制
  • .describe() python_Python-Win32com-Excel
  • .NET 4.0中的泛型协变和反变
  • .Net 8.0 新的变化
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .Net 高效开发之不可错过的实用工具
  • .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢?
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .NET设计模式(8):适配器模式(Adapter Pattern)