一、引言
今天爬取微信朋友圈签名做成词云,因为字体问题出错,导致浪费了一下午的时间才发现,把问题和教训跟大家分享一下。环境:64位Win 10中文版+Python 3.6.5(64位)
《Python程序设计(基于计算思维和新文科建设)》,ISBN:9787121435577,胡凤国,电子工业出版社,2022年6月。本书是电子工业出版社在国内较早采用纸质版+电子版的创新图书发行模式的第一次尝试。本书是这套创新图书的纸质版部分,与之内容互补的电子版图书将稍后出版。基础篇介绍Python程序设计的入门知识,共12章,包括:⑵ Python软件的安装和Python程序运行;⑶ Python的基本概念(对象、数据类型、表达式、内置函数);排错篇总结初学者常遇到的错误并介绍程序调试方法,包含2章:与本书内容互补的电子版图书包含文本篇和应用篇两部分:文本篇:介绍字符集、编码和文本文件读写的知识,包含了对国家规范《通用规范汉字表》8105个汉字当中难以输入和难以显示的汉字的处理。应用篇:介绍Word、Excel、PPT、PDF、图片等常用办公文件的处理,是大家提高办公和科研效率的好帮手。本书配套有详细的PPT和教学大纲,还有全部例题的程序代码和绝大部分思考题的程序代码。本书配套PPT里面还加入了配套电子版图书中的部分内容,比如字符集和编码,不同编码的文本文件的读写,Word、Excel、PPT、PDF等一些常用办公文件的读写。1、大学文科生, 可选本书当Python教材或自学Python的参考书。2、大学理工科学生, 可选本书当自学Python的参考书。可拿本书当工具书,本书的配套程序会为您节省效率,在当前大数据和新文科的背景下,本书可以为相关领域的量化研究提供技术支持。本书配套的电子版图书中的编码和文本处理知识也可以作为理工科教师和科研人员处理文本数据的参考资料之一,毕竟专门开辟章节介绍国家标准《通用规范汉字表》汉字处理的程序设计图书并不多见。
本书有专门的海龟画图章节,有大量的有趣数学题目,可以培养学生的计算思维,适合对编程感兴趣的中小学生阅读,也适合打算让娃参加编程辅导班的家长朋友参考。本书在各大实体书店和网店均有销售。京东、天猫、当当的购买渠道如下(可扫码直达购买页面)。
三、程序
首先声明一下,由于微信设置的限制,一些早期注册的微信号能使用itchat扩展库,一些晚注册的微信号就无法使用该扩展库。好像是能在 https://wx.qq.com/ 成功登录微信网页版的微信号就有希望使用itchat扩展库,也就能运行本文的程序代码。
先用itchat扩展库登录微信,获取到朋友圈所有好友的签名,用jieba扩展库分词,然后把分词结果喂给wordcloud扩展库,生成词云图。

首次运行本程序的时候,会弹出两次二维码让手机微信扫码,如果如何登录条件,程序就会登录扫码人的网页版微信,去获取朋友圈签名,然后处理后生成词云图。
不过,我这次运行居然报错了:

报告的是第16行有问题:
第一反应是不是朋友圈签名里面有一些特殊字符不能被wordcloud统计啊?于是就哼哧哼哧滴寻找到底是什么文本导致了问题。
首先,修改一下上面的程序,让它不生成词云,改成保存到文本文件。

生成的文本文件有1211行文本。然后写个程序用二分法逐步缩小考察的文本范围:


这不科学啊,第一行没有特殊字符,能有什么问题?那到底是什么原因呢?其实,我早就知道,生成中文词云,一定要指定字体文件名。而且,一些字体在 Win 7 下跟在 Win 10 下的字体文件名不一样。比如:微软雅黑字体在 Win 7 下的字体文件名是 msyh.ttf ,在 Win 10 下的字体文件名是 msyh.ttc 。这个生成微信朋友圈签名词云图的程序最初是在 Win 7 下写成的,代码中的字体文件名赫然就是 msyh.ttf 。这下子恍然大悟,现在电脑是 Win 10 了,于是马上改成 msyh.ttc ,前面的程序一下子就运行成功了,生成的词云图如下:
等这个词云图顺利生成的时候,已经浪费了我半下午的时间。如果程序运行时提示第15行出错,我不就知道是字体文件名没有改嘛。偏偏wordcloud加载字体文件的时候没有报错。
于是,我情不自禁滴说了一句:wordcloud,你不讲武德!我大意了,没有检查字体文件名。以后,再编程的时候,只能耗子尾汁了。
四、联系交流
由于本号文章以辅助教学为主,笔者不建议自己的学生直接拿代码运行,而是建议在理解了思路之后自己敲代码来加深印象,所以本号一般不直接贴代码,而是把代码做成图片。如果其他读者朋友有需要代码,请关注本号,加笔者微信联系。欢迎关注微信公众号“语和言”,本公众号将不定期发布对图书《Python程序设计(基于计算思维和新文科建设)》中的Python知识点进行解读和补充的内容。语和言公众号还有读者交流群,读者朋友可以入群一起讨论问题。
欢迎跟图书《Python程序设计(基于计算思维和新文科建设)》的作者胡凤国老师进行交流,电邮:cuchufengguo@163.com。
五、图书目录
图书《Python程序设计(基于计算思维和新文科建设)》目录如下(手机端可以用手指上下滑动下面灰色区域的文字来查看全部目录,电脑端可以用鼠标滚动滚轮或拖动下面文本框右边的滚动条来浏览全部目录):
8.2.4 关于元素可比较的有序序列类对象的通用操作10.3.3 用上下文管理语句with来管理文本文件读写12.12.1 datetime标准库定义的常用类参考文献