1] python 爬取微信好友个性签名,生成词云
在Anaconda下完成,参考https://blog.csdn.net/zhonglixianyun/article/details/78229782
结果图:
1. 需要的库
numpy, os,
itchat, wordcloud, jieba,
1) 安装itchat
由于在Anaconda下运行,安装外部库要在\Anacoda\Scripts目录下,pip默认是把东西安装在系统python环境中,即C:\Python27\Lib\site-packages中,因而无法在annocanda环境中调用,所以会出现这样的问题。
解决办法:在D:\Anacoda\Scripts中 把pip.exe和pip-script.py改成condapip.exe和condapip-script.py (改名字只是为了和系统python环境中的pip区分)。然后cmd中要用anaconda环境安装包就在\Anacoda\Scripts 下使用condapip install XXX就好了,想用系统的Python环境就直接pip install .....
2) 安装jieba
cmd-在\Anacoda\Scripts 下-condapip install XXX
3) 安装wordcloud
wordcloud不能直接安装,需要先下载对应python+计算机的版本wordcloud-1.3.2-cp36-cp36m-win_amd64.whl
下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud
然后在\Anacoda\Scripts 下 condapip install,将whl文件直接拖进来即可
2. 在目录下保存一张词云的底图,用来确定词云形状 配色
3. 代码
import itchat
import re # 先登录,扫二维码登录微信
itchat.login()
#获取好友列表,返回的是json信息
friends = itchat.get_friends(update=True)[0:]
#打印好友列表信息
#print(friends)
tList = []
for i in friends: # 获取个性签名,替换掉span,class,emoji signature = i["Signature"].replace(" ", "").replace("span", "").replace("class", "").replace("emoji", "") # 正则匹配过滤掉emoji表情,例如emoji1f3c3等 rep = re.compile("1f\d.+") signature = rep.sub("", signature) tList.append(signature) # 拼接字符串
text = "".join(tList) # jieba分词
import jieba
wordlist_jieba = jieba.cut(text, cut_all=True)
wl_space_split = " ".join(wordlist_jieba) # wordcloud词云
import matplotlib.pyplot as plt
from wordcloud import WordCloud, ImageColorGenerator
import os
import numpy as np
import PIL.Image as Image #d = os.path.dirname(__file__)
#找一张微信logo图来生成配色方案,微信logo图wechat.jpg路径在F:\\盘下
alice_coloring = np.array(Image.open(os.path.join('F:\\','we9.jpg')))
# 这里要选择字体存放路径,win的字体在C:/windows/Fonts中
"""#my_wordcloud = WordCloud().generate(wl_space_split) 默认构造函数
my_wordcloud = WordCloud( background_color='white', # 设置背景颜色 mask = abel_mask, # 设置背景图片 max_words = 200, # 设置最大显示的字数 stopwords = STOPWORDS, # 设置停用词 font_path = C:/Users/Windows/fonts/simkai.ttf', # 设置字体格式,如不设置显示不了中文 max_font_size = 50, # 设置字体最大值 random_state = 30, # 设置有多少种随机生成状态,即有多少种配色方案 scale=.5 ).generate(wl_space_split)"""
my_wordcloud = WordCloud(background_color="white", max_words=2000, mask=alice_coloring, max_font_size=40, random_state=42, font_path='C:/Windows/Fonts/simhei.ttf') \
.generate(wl_space_split) image_colors = ImageColorGenerator(alice_coloring)
plt.imshow(my_wordcloud.recolor(color_func=image_colors))
plt.imshow(my_wordcloud)
plt.axis("off")
plt.show() # 保存图片到F:\\盘下 并发送到手机里的文件传输助手(filehelper)里
my_wordcloud.to_file(os.path.join('F:\\','wechat_cloud.png'))
itchat.send_image("F:\\wechat_cloud.png", 'filehelper')
4. 问题:
1) [Errno 2] No such file or directory
原因:人为的给名为wechat的jpg文件又加了.jpg存储
2) 报错unexpected character after line continuation character
my_wordcloud = WordCloud(background_color="white", max_words=2000, mask=alice_coloring, max_font_size=40, random_state=42, font_path='C:/Windows/Fonts/simhei.ttf')\
.generate(wl_space_split)
原因:换行符 是 空格+\ ,这里没加空格,加上空格或者直接变为一行就可以了
5. 学习笔记
1) re 模块
Regular Expression,正则表达式
2) spider 的调试debug
a = 'a'
b = 'b'
c = 'c'
e = 'e'
f = 'f'
g = 'g'
h = 'h'
print(a)
1] 调试
调试前,在ipython中输入%reset 把工作空间的所有变量清除,以免影响测试
先不打断点,用debug (Ctrl+F5)的方式运行。
出现ipdb提示符,说明进入调试模式
在提示符后输入c(continue),程序继续执行到下一个断点。程序结束。
* 即使没打断点,也会在第一句执行之前中断,未执行第一句。c=.
* q退出调试
2] 断点
a. 普通的breakpoint,双击行首
ipython中箭头指示执行到第几行,在断点前结束
ipdb> !f
*** NameError: name 'f' is not definedipdb> !e
'e'
*!(python语句), 在当前状态下执行该python语句,例如!f可查看f变量,f==4可临时赋值
b. 带条件的breakpoint,Ctrl+Shift+双击行首
在框内可输入断点的条件,可以是任意返回True / False 的Python语句,例如(a==4)and(b==5)
发现断点不起作用,因为不满足条件。
q结束,重新Ctrl+F5进入debug,会自动在第一行开始前停住,
可以按=Ctrl+F10 单行单行的执行
c. 其他
Step Into,进入函数内部
Return , 跳出来.
3] 调试常用命令
ENTER
(重复上次命令)- a(在某个def中打印这个def接收到的所有arguements)
- b(在某行设置breakpoint)
c
(继续)直到触碰下一个breakpointl
( 可以列出当前将要运行的代码块)- ll(列出整个tree)
r
(运行直到子程序结束)- r(eturn) 继续执行,直到函数体返回
!<python 命令>
- n(ext) 让程序运行下一行,如果当前语句有一个函数调用,用 n 是不会进入被调用的函数体中的
- s(tep) 跟 n 相似,但是如果当前有一个函数调用,那么 s 会进入被调用的函数体中
- j(ump) 让程序跳转到指定的行数
h
(帮助)- a(rgs) 打印当前函数的参数
- p(rint) 最有用的命令之一,打印某个变量
- pp locals() 在某个def中打印该def中的局部变量
- pp globals() 打印全局变量
- q(uit) 退出调试
6. 细节
#获取好友列表,返回的是json信息
friends = itchat.get_friends(update=True)[0:] ,friends列表存储了所有好友的下列信息。
* 任取 i = friends[1], 以其中一个好友为例 , 可以看到‘Signature’‘City’‘Sex’等标签的信息
* 获取对应标签的信息 可以i["xxx"]任取
* replace()方法的语法
str.replace(old, new[, max]) 例如:str.replace("is", "was", 3); max 指定替换次数不超过3次
例如
signature = i["Signature"].replace(" ", "").replace("span", "").replace("class", "").replace("emoji", "")
1] python 爬取微信好友个性签名,生成词云相关推荐
- 玩转Python :获取微信好友个性签名生成词云
运行结果: 需要用到的库itchat.matplotlib.re.wordcloud.jieba. import itchat import re import jieba import matplo ...
- 使用python抓取微信好友个性签名并形成词云(itchat;wordcloud)
我主要参考这篇文章进行实践:点击打开链接 python版本:3.5 首先整体步骤分为两步:第一步,抓取好友个性签名,这一步主要依靠itchat实现:第二步,分词并形成词云,主要依靠jieba和word ...
- python爬取QQ空间说说并生成词云
以下是生成的词云图 我的环境:Mac,Anaconda,Python2.7,以及各种用到的Python库 先来说下Anaconda Anaconda 是一个可用于科学计算的 Python 发行版,支 ...
- Python入门--爬取淘宝评论并生成词云
Python爬取淘宝评论并生成词云 最新修改于2021/04/01 所需相关Python第三方库(目前最新版本即可) 推荐使用Anaconda,其使用十分方便.快捷. requests库 json库 ...
- 我用 Python 爬取微信好友,最后发现一个大秘密
前言 你身处的环境是什么样,你就会成为什么样的人.现在人们日常生活基本上离不开微信,但微信不单单是一个即时通讯软件,微信更像是虚拟的现实世界.你所处的朋友圈是怎么样,慢慢你的思想也会变的怎么样.最近在 ...
- 用Python爬取B站弹幕并做成词云
用Python爬取B站弹幕并做成词云 一.获取视频的cid号 1.进入想爬的视频,打开浏览器设置里的"开发者工具": 进入NetWork后等待requests刷出,数据够了后可随意 ...
- python爬虫爬微信数据可信吗_我用 Python 爬取微信好友,最后发现一个大秘密
前言 你身处的环境是什么样,你就会成为什么样的人.现在人们日常生活基本上离不开微信,但微信不单单是一个即时通讯软件,微信更像是虚拟的现实世界.你所处的朋友圈是怎么样,慢慢你的思想也会变的怎么样.最近在 ...
- python爬取微信好友_如何用 Python 爬取自己的微信朋友
原标题:如何用 Python 爬取自己的微信朋友 作者 Alfred 本文转载自网络,如涉及侵权请及时联系我们 微信作为一款拥有将近9亿用户的超级APP,已经成为很多人生活中不可或缺的一部分,聊天.分 ...
- Python爬取微信好友的信息
最近在学习python的过程中发现了一些比较好玩的东西----------爬取微信好友的信息,并可以制作一些酷炫的效果,比如:统计微信好友男女比例.实现图灵机器人自动回复消息.抓取好友头像并拼接成图. ...
最新文章
- 初学redux笔记,及一个最简单的redux实例
- 【渝粤题库】陕西师范大学200971教育经济学 作业(专升本、高起本)
- 跨模块中的分配内存问题
- 深度学习笔记(14) 评估指标
- 答简书安卓公测群里朋友的提问
- Vue3.0 + Ts 项目使用element-plus 自动按需导入 使用v-loading报错
- Android安全补丁程序下载,2017年一月win7安全补丁更新包官方下载-2017Win7安全更新补丁包64位下载-西西软件下载...
- 【CarMaker学习笔记】申请使用账号
- VC与VS的版本对应关系,VC到底是什么?为啥总提示缺少VC
- 发言倒计时器_单面会议计时器 会议发言倒计时器
- 基于QT框架的离线词典应用程序
- 动态规划,计算股票最大收益
- AVS2 有点令人不敢相信
- Java成员方法getinfo_Java Swagger.getInfo方法代码示例
- MSTAR雷达数据集总结
- Fiddler抓包工具常见功能介绍,还不会的进来看
- 官网实例详解4.37(pretrained_word_embeddings.py)-keras学习笔记四
- EN 14915实木镶板和包层—CE认证
- 趣头条app sign
- PTA 7-5 彩虹瓶