2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 【微信辅助】疫情当前 python帮你找出朋友圈的武汉朋友给予关怀

【微信辅助】疫情当前 python帮你找出朋友圈的武汉朋友给予关怀

时间:2019-01-14 15:49:31

相关推荐

【微信辅助】疫情当前 python帮你找出朋友圈的武汉朋友给予关怀

我是程序员小小叶,为大家带来原创精彩技术内容。

疫情无论是对于个体还是企业都是无法承受之重。希望疫情早日过去,这是作为一个普通人一个的小小心愿。

我们身边的亲朋好友也或多或少受到了疫情的影响,让我们来通过python找出朋友圈的武汉朋友给予关怀。

第一步,首先还是先安装wxpy,其次就是安装本文中地图绘制所用到的pyecharts模块

pip install wxpy # 支持微信相关功能

pip install pyecharts # 支持地图绘制功能

pip install pyecharts_snapshot

第二步,根据需要下载所需要的地图数据包,pyecharts v0.3.2以后,pyecharts 将不再自带地图 js 文件。如用户需要用到地图图表,可自行安装对应的地图文件包。这里我们选择中国省级地图: echarts-china-provinces-pypkg进行下载,用于显示湖北省的地图

全球国家地图: echarts-countries-pypkg:世界地图和 213 个国家,包括中国

中国省级地图: echarts-china-provinces-pypkg:23 个省,5 个自治区

中国市级地图: echarts-china-cities-pypkg:370 个中国城市

中国县区级地图:echarts-china-counties-pypkg:2882 个中国县·区

中国区域地图:echarts-china-misc-pypkg:11 个中国区域地图,比如华南、华北。

除此之外,英国选区图: echarts-united-kingdom-pypkg:英国选区图可以用来画与政治经济相关的数据

pip install echarts-countries-pypkg

pip install echarts-china-provinces-pypkg

pip install echarts-china-cities-pypkg

pip install echarts-china-counties-pypkg

pip install echarts-china-misc-pypkg

环境准备好之后,紧接着设计策略。

1.通过Bot(cache_path=True).friends()函数获取好友信息,从中找到我们寻找的湖北朋友;

2.向eCharts添加自定义geojson数据实现地图展示;

3.自定义祝福话术,随机发送给湖北好友列表

完整代码:

# encoding: utf-8"""@author: 程序员小小叶@contact: 3203636266@@微信公众号:程序员小小叶@time: /2/19 13:03@file: case4.py@desc: 疫情当前,python帮你找出朋友圈的武汉朋友给予关怀"""from wxpy import *from pyecharts import options as optsfrom pyecharts.charts import Geofrom pyecharts.globals import ChartTypefrom pyecharts.globals import ThemeTypeimport webbrowserimport randomdef is_Chinese(word): # 由于存在国外友人,所以这里要滤除国外英文地名以及不填地区的好友for ch in word:if '\u4e00' <= ch <= '\u9fff':return Truereturn Falsebot = Bot(cache_path=True)# 获取所有好友的信息friends = bot.friends()# 获取省份信息,并过滤出湖北的好友china_friends_sum = {}hubei_friends_sum = {}hubei_friends = []for f in friends:province = f.provinceif is_Chinese(province):if province in china_friends_sum:china_friends_sum[province] += 1if province == '湖北':city = f.cityprint(f.remark_name)print(f.city)hubei_friends.append(f)if city in hubei_friends_sum:hubei_friends_sum[city] += 1else:hubei_friends_sum[city] = 1else:china_friends_sum[province] = 1# 由于微信内的城市名称不带“市”,且部分自治州也是简称,所以要进行补全,如恩施土家族苗族自治州hubei_citys = ['黄冈市', '黄石市', '鄂州市', '武汉市', '咸宁市', '孝感市', '随州市', '天门市', '仙桃市', '荆州市', '荆门市', '潜江市', '襄阳市', '宜昌市', '十堰市','神农架林区', '恩施土家族苗族自治州']echart_data = []max = 0for m in hubei_friends_sum:for city in hubei_citys:if m in city:item = (city, hubei_friends_sum[m])echart_data.append(item)if hubei_friends_sum[m] > max:max = hubei_friends_sum[m]print(echart_data)print(max)print(china_friends_sum)# 绘制分布地图def geo_guangdong() -> Geo:c = (Geo(init_opts=opts.InitOpts(theme=ThemeType.DARK)).add_schema(maptype="湖北") # 也可以是其他省,那么对应的城市名也是需要修改的.add("", echart_data, ChartType.EFFECT_SCATTER,is_selected=True, symbol=None, symbol_size=6, color="red").set_series_opts(label_opts=opts.LabelOpts(is_show=False)).set_global_opts(visualmap_opts=opts.VisualMapOpts(is_piecewise=True, max_=max, ),title_opts=opts.TitleOpts(title="微信好友湖北分布图", pos_left="300")))return cg = geo_guangdong()g.render('微信好友湖北分布图.html')# 用浏览器打开生成的本地网页# webbrowser.open("微信好友湖北分布图.html")# 分别发送祝福给对方# 祝福语录集wishes = ["出门戴口罩哦!勤洗手勤通风,少出门不聚集!","保持好心态、重防护、勤消毒,减少出门和聚会,保护好自己和家人。","但行好事,莫问前程,共渡难关。"]print(len(wishes)-1)for hf in hubei_friends:print(hf.remark_name)target = bot.search(hf.remark_name)[0] # 这里‘’填入微信好友昵称target.send(wishes[random.randint(0, len(wishes)-1)])# 进入Python命令行,让程序保持运行embed()

如果你在学习Python,不妨关注点赞收藏一下!

同名公众号:程序员小小叶,关注发送“数据分析”,赠送《利用 Python 进行数据分析》(中文带书签)电子书(学习 Python 基础库最好的书。)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。