Оригинальная ссылка:Tickets.WeChat.QQ.com/Yes/4ex dog R4GK молоко…
«ITCHAT» с открытым исходным кодом персональных микроканальных интерфейсов, сегодня мы используем ITCHAT ползать информацию Micro буквы информации, не рисуя пустые слова
Три изображения: «Мозаика аватара друзей WeChat», «Таблица гендерной статистики» и «Таблица статистики личной подписи».
"Мозаика аватара друзей WeChat"
"Гендерная карта"
«Характеристики подписи личности»
Установить
pip3 install itchat
В основном используемые методы:
itchat.login()
WeChat Scan QR-код для входа в систему
itchat.get_friends()
Назад к полному списку друзей, каждый друг как словарь, первый из которых является моей учетной записью, входящейupdate=True
, обновит список друзей и вернется,get_friends(update=True)
itchat.get_head_img(userName="")
в соответствии сuserName
Получить аватар друга
Мозаика аватара друга Wechat
получить информацию о друзьях,get_head_img
Получите аватар каждого друга, сохраните файл и уменьшите аватар на большую картину.
Сначала получите аватар вашего друга:
def headImg():
itchat.login()
friends = itchat.get_friends(update=True)
# itchat.get_head_img() 获取到头像二进制,并写入文件,保存每张头像
for count, f in enumerate(friends):
# 根据userName获取头像
img = itchat.get_head_img(userName=f["UserName"])
imgFile = open("img/" + str(count) + ".jpg", "wb")
imgFile.write(img)
imgFile.close()
Здесь вам нужно заранее создать новую папку в том же каталогеimg
, иначе он сообщитNo such file or directory
Ошибка,img
Используется для сохранения изображения аватара, просмотра списка друзей в соответствии с индексомcount
Назовите аватарку, и тут вы увидите, что в папке сохранились аватарки всех друзей.
Следующим шагом будет сшивание изображений
пройтись по папке с картинками,random.shuffle(imgs)
Перемешать порядок картинок
Используйте большое изображение 640 * 640, чтобы равномерно разделить каждый аватар, рассчитать длину и ширину каждого маленького квадратного изображения, сжать аватар, склеить изображения, заполнить линию, обернуть и склеить, если есть много аватаров друзей, вы можете соответствующим образом увеличьте размер большой области изображения, конкретный код выглядит следующим образом:
def createImg():
x = 0
y = 0
imgs = os.listdir("img")
random.shuffle(imgs)
# 创建640*640的图片用于填充各小图片
newImg = Image.new('RGBA', (640, 640))
# 以640*640来拼接图片,math.sqrt()开平方根计算每张小图片的宽高,
width = int(math.sqrt(640 * 640 / len(imgs)))
# 每行图片数
numLine = int(640 / width)
for i in imgs:
img = Image.open("img/" + i)
# 缩小图片
img = img.resize((width, width), Image.ANTIALIAS)
# 拼接图片,一行排满,换行拼接
newImg.paste(img, (x * width, y * width))
x += 1
if x >= numLine:
x = 0
y += 1
newImg.save("all.png")
Формируются аватарки друзей, а аватарки произвольно склеиваются и сращиваются
Гендерный график
такой жеitchat.login()
Войдите, чтобы получить информацию о друзьях, согласноSex
Поле определяет пол, 1 для мужчины, 2 для женщины, 3 для неизвестного
def getSex():
itchat.login()
friends = itchat.get_friends(update=True)
sex = dict()
for f in friends:
if f["Sex"] == 1: #男
sex["man"] = sex.get("man", 0) + 1
elif f["Sex"] == 2: #女
sex["women"] = sex.get("women", 0) + 1
else: #未知
sex["unknown"] = sex.get("unknown", 0) + 1
# 柱状图展示
for i, key in enumerate(sex):
plt.bar(key, sex[key])
plt.show()
Гистограмма гендерной статистики
Таблица статистики подписи личности
получить информацию о друзьях,Signature
Поле — это подпись друга. Сохраните персонализированную подпись в файл .txt. Некоторые подписи содержат выражения и другие слова, которые станут словами, похожими на смайлики. Замените эти и специальные символы.
def getSignature():
itchat.login()
friends = itchat.get_friends(update=True)
file = open('sign.txt', 'a', encoding='utf-8')
for f in friends:
signature = f["Signature"].strip().replace("emoji", "").replace("span", "").replace("class", "")
# 正则匹配
rec = re.compile("1f\d+\w*|[<>/=]")
signature = rec.sub("", signature)
file.write(signature + "\n")
sign.txt
В файл записываются личные подписи всех друзей, а изображение облака слов генерируется с помощью пакета wordcloud.pip install wordcloud
Также доступныjieba
Сегментация слов создает графы слов. Если сегментация слов не используется, это отображение предложений.jieba
Причастия могут быть уместныmax_font_size
Увеличьте атрибут, например, 100.
Следует отметить, что операция не должна выполняться в виртуальной среде.deactivate
Выйдите из виртуальной среды и запустите снова.Подробный код выглядит следующим образом:
# 生成词云图
def create_word_cloud(filename):
# 读取文件内容
text = open("{}.txt".format(filename), encoding='utf-8').read()
# 注释部分采用结巴分词
# wordlist = jieba.cut(text, cut_all=True)
# wl = " ".join(wordlist)
# 设置词云
wc = WordCloud(
# 设置背景颜色
background_color="white",
# 设置最大显示的词云数
max_words=2000,
# 这种字体都在电脑字体中,window在C:\Windows\Fonts\下,mac下可选/System/Library/Fonts/PingFang.ttc 字体
font_path='C:\\Windows\\Fonts\\simfang.ttf',
height=500,
width=500,
# 设置字体最大值
max_font_size=60,
# 设置有多少种随机生成状态,即有多少种配色方案
random_state=30,
)
myword = wc.generate(text) # 生成词云 如果用结巴分词的话,使用wl 取代 text, 生成词云图
# 展示词云图
plt.imshow(myword)
plt.axis("off")
plt.show()
wc.to_file('signature.png') # 把词云保存下
граф предложений
использоватьjieba
Облако слов, порожденное словом
Кажется, что «тяжелая работа» и «жизнь» по-прежнему очень важны
В дополнение к вышеуказанной информации, itchat также может собирать информацию, такую как провинции и города, а также может реализовывать такие функции, как автоматический чат с роботами, которые здесь не будут описаны.
Наконец, прикрепите адрес github:GitHub.com/TooWant/IT…
Добро пожаловать на мой блог:blog.manjiexiang.cn/
Добро пожаловать, чтобы обратить внимание на WeChat: лучше узнать вас на весеннем ветру