Python+微信: 如何優雅地管理微信資料庫?

2021-02-14 Stata連享會
Python: 如何優雅地管理微信資料庫?

作者: 許夢潔 (Frankfurt School of Finance and Management)
E-mail: m.xu@fs.de

Stata連享會     課程主頁  || 直播視頻 || 知乎推文

掃碼查看連享會最新專題、公開課視頻和 100 多個碼雲計量倉庫連結。

主講嘉賓:司繼春 || 遊萬海

連享會-文本分析與爬蟲專題-4天直播

Note: 本課程為直播/錄播課,直播後任何時間都可以購買課程,獲取所有電子課件。

目錄



最近每天在隔離點蹲著,發現隔離點的護士小姐姐每天兩次在群裡扒聊天記錄統計一兩百號人的體溫真是太南了,所以想寫個程序幫小姐姐自動收集,今天剛好隔離期滿,也算是給這段特殊的經歷留個紀念。

這篇文章主要內容是:

使用 DB Browser for SQLite 打開資料庫並重設密碼Contact - wccontact_new2.db - 好友信息Group - group_new.db - 群聊和群成員信息Message - {msg_0.db - msg_9.db} - 聊天記錄和公眾號文章Favorites - favorites.db - 收藏1. 如何找到微信本地緩存資料庫存放地址並獲取資料庫密碼1.1 捷徑

對於Mac OS 系統,一個 short answer 是

/Users/xxx/Library/Containers/com.tencent.xinWeChat/Data/Library/Application Support/com.tencent.xinWeChat/

打開後,可以看到:

這裡需要重點關注的是看起來很像 md5 碼形式的文件,每個文件都代表一個曾經在你的電腦上登陸過並留下緩存的微信帳號,有了下面將會介紹的解碼方法,你可以逐個打開解析,確認到底哪個帳號是你要找的。

總體來說,Windows 系統同理。

1.2 LLDB 調試

在沒有任何信息的情況下,我們如何找到一個獲取資料庫地址的系統性方法?答案在於LLDB斷點調試。

1.2.1 什麼是 LLDB?

LLDB is a next generation, high-performance debugger. It is built as a set of reusable components which highly leverage existing libraries in the larger LLVM Project, such as the Clang expression parser and LLVM disassembler.LLDB is the default debugger in Xcode on Mac OS X and supports debugging C, Objective-C and C++ on the desktop and iOS devices and simulator.All of the code in the LLDB project is available under the standard LLVM License, an open source "BSD-style" license.

簡言之,LLDB是一個有著 REPL(交互式解析器) 的特性和 C++ |Python 插件的開源調試器新一代高性能調試器。隨著Xcode5的發布,LLDB調試器成為macOS系統調試的基礎部分。對於開源和其他非基於GUI的應用程式調試的開發,可以將終端窗口中的LLDB用作傳統的命令行調試器。

這裡的主要的信息是:

LLDB 是一個內建於 ISO 終端窗口的命令行調試器

這意味著,使用 LLDB 我們可以通過打斷點來獲得正在運行的進程的後臺信息。這也是我們可以通過 LLDB 來尋找微信資料庫地址以及獲取訪問密碼的主要原因。

1.2.2 關閉SIP系統完整性保護

系統完整性保護(SIP)是 OS X El Capitan 及更高版本所採用的一項安全技術,旨在幫助防止潛在惡意軟體修改 Mac 上受保護的文件和文件夾,但這也造成了安裝某些特殊版本軟體的或者做特殊修改的時候權限不足。在這裡就體現在使用 LLDB 調試時候,所有的調試語句都會被系統拒絕,因此在正式進行調試之前,一個重要的準備工作就是檢查系統完整性保護(SIP)的開啟狀態,如果開啟的話,要把它關閉。

檢查 SIP 的開啟狀態

在終端裡輸入 csrutil status 回車,如果看到:

System Integrity Protection status: enabled.

這說明的 SIP 已經開啟,如果要繼續調試的話,需要關閉。如果是 System Integrity Protection status: disabled. 則說明 SIP 已經處於關閉狀態,可以直接進行調試。

在終端中輸入 csrutil disable 回車,會出現

Successfully disabled System Integrity Protection. Please restart the machine for the changes to take effect.

記得在調試後按照同樣的步驟輸入  csrutil enable 重新開啟 SIP 惹

1.2.3 LLDB 獲取微信資料庫地址

在命令行裡輸入 lldb -p $(pgrep WeChat)

(lldb) process attach --pid 77855
Process 77855 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
frame #0: 0x00007fff6e878dfa libsystem_kernel.dylib`mach_msg_trap + 10
libsystem_kernel.dylib`mach_msg_trap:
-> 0x7fff6e878dfa <+10>: retq
0x7fff6e878dfb <+11>: nop

libsystem_kernel.dylib`mach_msg_overwrite_trap:
0x7fff6e878dfc <+0>: movq %rcx, %r10
0x7fff6e878dff <+3>: movl $0x1000020, %eax ; imm = 0x1000020
Target 0: (WeChat) stopped.

Executable module set to "/Applications/WeChat.app/Contents/MacOS/WeChat".
Architecture set to: x86_64h-apple-macosx-.

這時候微信的進程被我們暫停了,需要在命令行中輸入 c 回車,可以看到:

Process 77855 resuming

輸入 br set -n '[WCTDatabase initWithPath:]

Breakpoint 1: where = WCDB`-[WCTDatabase(Database) initWithPath:], address = 0x000000010e54120a

進入 聊天備份與恢復 頁面點擊恢復聊天記錄到手機 觸發斷點

Process 78136 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
frame #0: 0x000000010e54120a WCDB`-[WCTDatabase(Database) initWithPath:]
WCDB`-[WCTDatabase(Database) initWithPath:]:
-> 0x10e54120a <+0>: pushq %rbp
0x10e54120b <+1>: movq %rsp, %rbp
0x10e54120e <+4>: pushq %r15
0x10e541210 <+6>: pushq %r14
Target 0: (WeChat) stopped.

在命令行輸入 po $arg3

/Users/xxxx/Library/Containers/com.tencent.xinWeChat/Data/Library/ApplicationSupport/com.tencent.xinWeChat/2.0b4.0.9/Backup/d9381f8bfa1ab8fa0f5e54b2858dffc3/EA2CC6CD-FCD2-4570-9CAC-9C95FF7E348B/Backup.db

以上可以得到微信資料庫的本地存儲地址,確切地來說是微信備份文件的存儲地址,往上一層文件夾就可以找到微信好友和聊天記錄資料庫

image-202004011836303941.2.4 LLDB 獲取微信資料庫密碼

接著上面的操作在命令行裡輸入 br set -n sqlite3_key

Breakpoint 2: 2 locations.

輸入 memory read --size 1 --format x --count 32 $rsi

0x7fff78a12bc9: 0x69 0x6e 0x59 0x74 0x57 0x69 0x74 0x68
0x7fff78a12bd1: 0x50 0x61 0x34 0x68 0x3a 0x00 0x73 0x65
0x7fff78a12bd9: 0x74 0x53 0x70 0x65 0x65 0x64 0x4d 0x75
0x7fff78a12be1: 0x6c 0x74 0x69 0x70 0x6c 0x69 0x65 0x72

按照以下的步驟處理上面的輸出即可得到 64 位密碼:

只保留 : 右邊的數據

0x69 0x6e 0x59 0x74 0x57 0x69 0x74 0x68
0x50 0x61 0x34 0x68 0x3a 0x00 0x73 0x65
0x74 0x53 0x70 0x65 0x65 0x64 0x4d 0x75
0x6c 0x74 0x69 0x70 0x6c 0x69 0x65 0x72

刪掉所有的 0x

69 6e 59 74 57 69 74 68
50 61 34 68 3a 00 73 65
74 53 70 65 65 64 4d 75
6c 74 69 70 6c 69 65 72

刪掉所有的空格和換行

696e597457697468506134683a0073657453706565644d756c7469706c696572

以上就是打開資料庫的 64 位密碼啦,該密碼適用於聊天記錄,好友信息,群聊成員等各個資料庫

1.3 打開資料庫並重設密碼

微信存儲數據用的是輕量級的資料庫工具 SQLite ,有很多軟體可以打開,這裡以 DB Browser for SQLite 為例。比如我雙擊聊天記錄資料庫 msg_0.db,會出現以下界面:

image-20200401184709226

注意:

Encryption settings 選擇 SQLClipher 3 defaults密碼填寫 0x 加上之前獲取的 64 位密碼,所以一共是 66 位

如果正確操作的話,這裡應該可以打開資料庫了。這裡我們來看下資料庫的結構,這裡可以看出這個資料庫裡一共有 144 張表,每張表對應一個微信好友/群聊/公眾號的聊天記錄。

image-20200401184925323

一個典型的表的屬性如下:

最重要的幾個屬性為:

點擊瀏覽數據可以進行預覽:

image-20200401185305159

為了避免每次打開都輸入密碼,我們可以移除資料庫的密碼。在 DB Browser for SQLite 中的具體操作是 工具 - 設置加密 - OK,即直接重設為空密碼,這樣也方便我們進一步提取數據。

image-20200401185443595

2. 本地存儲的微信資料庫裡都有什麼?

我翻了翻幾個文件夾,認為以下四項最有分析意義,當然還有其他的小夥伴們可以自行發掘。

Contact - wccontact_new2.db - 好友信息Group - group_new.db - 群聊和群成員信息Message - {msg_0.db - msg_9.db} - 聊天記錄和公眾號文章Favorites - favorites.db - 收藏2.1 微信好友/公眾號

首先來看聯繫人資料庫 wccontact_new2.db,這裡主要就是一張表 WCContact,這裡面存儲了我們加的微信好友和關注的公眾號的信息,主要是暱稱和微信號 m_nsUsrName。一般公眾號以 gh_ 開頭。這裡的 m_nsUsrName 非常重要,因為聊天資料庫裡的表名都是 md5 編碼後的 m_nsUsrName。比如公眾號 廣發證券研究 的 m_nsUsrName 為 gh_24e4252623cf,使用 32 位 md5 編譯後即為 dec04a5f755c79d776498462a9f92292,因此聊天記錄資料庫裡的 Chat_dec04a5f755c79d776498462a9f92292 即為這個公眾號的全部歷史信息。

image-202004011859596932.2 群聊/群成員

group_new.db 資料庫裡有兩張表,分別是 GroupContact 和 GroupMember。其中 GroupContact 和微信好友資料庫很像,只不過裡面存儲的是群聊名稱和群聊 m_nsUsrName。用法和聯繫人資料庫一樣,都是通過對 m_nsUsrName 進行 md5 編譯索引到聊天記錄資料庫裡的表。

image-20200401195131067

GroupMember 表裡包含了你加群裡所有群成員的微信號和暱稱,不管有沒有加過好友。所以一般如果聯繫人資料庫裡有幾百個的話,這個表裡往往有幾千上萬條記錄。

image-202004011952590142.3 收藏

favorites.db 裡面有 8 張表,其中最重要的是兩個,FavoriteItemTable 和 FavoriteSearchTable。

image-20200401195806062

FavoriteSearchTable 給了收藏的標題和 localID。

image-20200401200058596

FavoriteItemTable 給了收藏時間戳,收藏內容連結,以及收藏內容來源用戶等,並且可以和 FavoriteSearchTable  通過 localID 互相索引。

image-202004012002295622.4 聊天記錄

見上文

3. 如何解析資料庫並提取目標信息?

使用解密腳本打開資料庫:

from pysqlcipher import dbapi2 as sqlite
output = 'output_db_whole.db'
key = 'a3c77a9'
conn = sqlite.connect(db)
c = conn.cursor()
c.execute("PRAGMA key = '" + key + "';")
c.execute("PRAGMA cipher_use_hmac = OFF;")
c.execute("PRAGMA cipher_page_size = 1024;")
c.execute("PRAGMA kdf_iter = 4000;")
c.execute("SELECT name FROM sqlite_master WHERE type='table'")
c.execute("ATTACH DATABASE '" + output + "' AS db KEY '';")
c.execute("SELECT sqlcipher_export('db');")
c.execute("DETACH DATABASE db;")
conn.close()

從群聊資料庫裡提取群聊列表,使用 transmd5 函數獲得群聊索引序號 md5 編碼,並寫入文本文件中:

import sqlite3
import time, datetime
import hashlib

conn = sqlite3.connect('group_new.db')
print("Opened database successfully")

def transmd5(string):
m = hashlib.md5(string.encode(encoding='UTF-8')).hexdigest()
return(m)

def transfertime(timeStamp):
timeArray = time.localtime(timeStamp)
otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
return(otherStyleTime)

cursor = conn.execute("SELECT m_nsUsrName, nickname, m_nsFullPY, m_nsChatRoomMemList from GroupContact")
f = open('groupcontact.txt','w')
for row in cursor:
for i in range(3):
f.write(row[i]+';')
f.write(transmd5(row[0]))
f.write('\n')

print("Operation done successfully")
conn.close()

image-20200401201319956

從以上結果裡面,我們可以得到我們想要的群聊在資料庫中的 md5 編碼 Chat_aa309112204d5fd125c5a8bad609ff25。同時提取群聊成員列表,準備與聊天記錄進行合併:

conn = sqlite3.connect('group_new.db')

cursor = conn.execute("SELECT m_nsUsrName, nickname from GroupMember")
f = open('groupmember.txt','w')
for row in cursor:
for i in range(2):
f.write(row[i]+';')
f.write('\n')

conn.close()

image-20200401202149160

由於聊天記錄被自動拆分到了 10 個資料庫文件 msg_0.db - msg_9.db 裡,需要遍歷所有的資料庫文件獲取每個資料庫裡所有的表名才能確定我們要的聊天記錄到底存儲在哪個文件裡。

def sheetname(i):
conn = sqlite3.connect('msg_%s.db'%i)
return(conn)

def getdata(conn):
cursor = conn.execute("select name from sqlite_master where type='table'")
tab_name=cursor.fetchall()
tab_name=[line[0] for line in tab_name]
return(tab_name)

f = open('sheetname.txt','a')
for j in range(10):
conn = sheetname(j)
tab_name = getdata(conn)
for i in tab_name:
f.write(i+','+'sheet_%s'%j+'\n')

conn.close()

image-20200401201816684

經過這一步,我們可以精確定位想要的群聊到底在哪個資料庫文件裡的哪張表裡。於是可以從聊天資料庫裡提取指定群聊信息的聊天記錄,轉換時間戳,使用正則表達式篩選符合指定信息的聊天記錄,並寫入文本文件中:

conn = sqlite3.connect('msg_0.db')

def transfertime(timeStamp):
timeArray=time.localtime(timeStamp)
otherStyleTime=time.strftime("%Y-%m-%d %H:%M:%S",timeArray)
return(otherStyleTime)

cursor=conn.execute("SELECT msgCreateTime,messageType,msgContent from Chat_aa309112204d5fd125c5a8bad609ff25 where messageType=1")

f = open('chatrecord.txt','w')

for row in cursor:
a = re.findall('[\d]+.*[\d]+\.[\d]',row[2].split(':')[-1])
if a != []:
f.write("%s;%s;%s;\n"%(transfertime(row[0]),row[2].split(':')[0],a))

conn.close()

image-20200401201003038

如果不通過正則表達式篩選的話,得到的就是文本格式的聊天記錄:

這裡存在一個問題是,聊天記錄裡只有每個人的微信號,沒有暱稱,因此我們需要把這張表和群聊成員表合併,並導出最終的結果:

import pandas as pd
import csv

df1 = pd.read_table('/Users/mengjiexu/PycharmProjects/wx/chatrecord.txt',sep = ';')
df1.columns = ['timestamp','wxindex','record','']
df2 = pd.read_table('/Users/mengjiexu/PycharmProjects/wx/groupmember.txt',sep = ';',error_bad_lines=False,quoting=csv.QUOTE_NONE)
df2.columns = ['wxindex','nickname','']
df = pd.merge(df1,df2,on = 'wxindex',how='left')
df.to_csv('resultspd.csv',mode ='w',encoding='gb18030')

image-20200401202426435

如果對自己的好友分布感興趣,還可以導出自己的好友和公眾號列表,並進行進一步的分析:

conn = sqlite3.connect('wccontact_new2.db')

cursor = conn.execute("SELECT m_nsUsrName, nickname, m_nsFullPY, m_nsAliasName from WCContact")
#df = pd.DataFrame(cursor, columns=['username','nickname','fullpy','aliasname'])
#df.to_csv('contact.csv', sep=',', mode='a', encoding='utf8')
f = open('contact.txt','a')
for row in cursor:
for i in range(3):
f.write(row[i]+',')
f.write('\n')

conn.close()

image-202004012028027544. 參考連結https://www.jianshu.com/p/0f41c120160dhttps://jingyan.baidu.com/article/f0e83a255eea0622e591013d.htmlhttps://www.jianshu.com/p/90224ab9cdf2http://xferris.cn/dao-chu-wei-xin-bei-fen-de-mac/https://www.jianshu.com/p/93bbcda3133a

關於我們Stata連享會 由中山大學連玉君老師團隊創辦,定期分享實證分析經驗。🎦 直播間 http://lianxh.duanshu.com 有很多視頻課程,可以隨時觀看 (🆓 公開課-「直擊面板數據」已經被觀看 1000+ 次)。🌺 你的頸椎還好嗎? 為了保護頸椎,您可以將 🍎 連享會-主頁 lianxh.cn 和 知乎專欄 (在知乎中搜索「連享會」即可) 添加到您的收藏夾,以便隨時查看往期推文。📁 公眾號推文分類查看: 歷史推文分為  內生性 | 空間計量 | 時序面板 | 結果輸出 | 交乘調節 五類,主流方法介紹一目了然:DID, RDD, IV, GMM, FE, Probit 等。只需進入公眾號,點擊菜單即可查看。💥 - 公眾號關鍵詞搜索/回復 功能已經上線。大家可以在公眾號左下角點擊鍵盤圖標,輸入簡要關鍵詞,以便快速呈現歷史推文,獲取工具軟體和數據下載。常見關鍵詞:課程, 直播, 視頻, 客服, 模型設定, 研究設計,stata, plus,Profile, 手冊, SJ, 外部命令, profile, mata, 繪圖, 編程, 數據, 可視化DID,RDD, PSM,IV,DID, DDD, 合成控制法,內生性, 事件研究交乘, 平方項, 缺失值, 離群值, 縮尾, R2, 亂碼, 結果Probit, Logit, tobit, MLE, GMM, DEA, Bootstrap, bs, MC, TFP面板, 直擊面板數據, 動態面板, VAR, 生存分析, 分位數空間, 空間計量, 連老師, 直播, 爬蟲, 文本, 正則, pythonMarkdown, Markdown幻燈片, marp, 工具, 軟體, Sai2, gInk, Annotator, 手寫批註歡迎加入Stata連享會(公眾號: StataChina)

相關焦點

  • 如何製作微信聊天機器人&群聊助手
    EverydayWechat ——一款基於 Python3 與 Itchat 的微信小工具。 -V  #輸入python -V命令Python 2.7.5               #查看可以得知是 Python2.7.5 版本輸入 python -V 命令得知是 Python2.7.5 版本[root@guest ~]# which python/usr/bin/python輸入 which python
  • Python 實戰(2):簡單的資料庫
    試想以後網站要包含成千上萬條影片信息,需要時常更新,並且當網站運行中斷、重啟之後仍然能保存之前的信息狀態,通過這種方式肯定是難以滿足的。一種辦法是通過文件存儲,將影片信息轉成文本或通過「序列化」的方式保存在文件中(微信回復 33、65 可以查看相關文章)。但當數據量較大之後,直接通過文件讀寫和處理數據將會是一件非常複雜且耗時的操作,因此無法真正用來作為網站的數據存儲。
  • 企業微信管理軟體的作用有哪些
    由於市場對於企業微信管理系統的需求,一批又一批軟體供應商對企業微信進行了第二次開發。企業微信crm管理系統助力企業精細化客戶運營和銷售管理,微信crm軟體提供管理成本優化、全方位員工保障的一站式解決方案,為企業微信管理營銷賦能。
  • Python連接MySQL資料庫方法介紹(超詳細!手把手項目案例操作)
    執行結果如下:('a', '趙大', '16')('b', '錢二', '16')mysql.connectormysql-connector-python:是MySQL官方的純Python驅動;mysql.connector安裝安裝pip install mysql查看版本pip show
  • Python常用庫大全
    環境管理管理 Python 版本和環境的工具p – 非常簡單的交互式 python 版本管理工具。 pyenv – 簡單的 Python 版本管理工具。 Vex – 可以在虛擬環境中執行命令。 virtualenv – 創建獨立 Python 環境的工具。
  • Python 520告白特技:隱藏在聊天記錄裡的珍貴禮物
    一、導出自己和對象的數據~微信的備份功能並不能直接給你導出文本格式,它導出來其實是一種叫sqlite的資料庫。在夜神模擬器中下載微信3. 使用windows客戶端版的微信進行備份,如圖左下角同樣地,用RE文件管理器打開這個文件/data/data/com.tencent.mm/shared_prefs/system_config_prefs.xml
  • 如何用PYTHON代碼寫出音樂
    我一直在做這樣的嘗試,就是通過人工智慧算法實現機器自動的作詞和編曲(在這裡預告下,通過深度學習寫歌詞已經實現了,之後會分享給大家),本文我們主要聊下如何寫曲。說到用代碼寫曲子,有一個東西大家一定要了解就是MIDI。MIDI是一種樂器數字接口,是編曲界最廣泛的音樂標準格式。MIDI並不是真正意義上的音樂文件,大家可以把它理解成樂譜,需要有環境編譯MIDI文件,才可以生成音樂。
  • Python 情人節告白特技:隱藏在聊天記錄裡的珍貴禮物
    一、導出自己和對象的數據~微信的備份功能並不能直接給你導出文本格式,它導出來其實是一種叫sqlite的資料庫。在夜神模擬器中下載微信3. 使用windows客戶端版的微信進行備份,如圖左下角同樣地,用RE文件管理器打開這個文件/data/data/com.tencent.mm/shared_prefs/system_config_prefs.xml
  • 攝影后期 | 解密Lightroom照片管理之資料庫
    認識Lightroom這個神奇的軟體是我對照片有管理需求的時候。相信很多朋友和我一樣,硬碟裡的照片堆積如山才想到進行照片管理,還好有「它」還不算晚,Lightroom是以資料庫的形式管理照片,也有些朋友覺得麻煩,就此半途而廢了,其實用Lightroom的資料庫管理照片並不難。
  • [Python運維]cx_Oracle模塊的安裝
    這部分會和Oracle awr報告穿插著寫上節講了如何安裝Python3.6 ,這節講述如何利用Python 模塊cx_Oracle 連接Oracle資料庫[Python運維]Python3.6的安裝這節包含 oracle客戶端的安裝和cx_Oracle模塊的安裝兩部分環境設置
  • 安卓手機可以下載微信最新版本8.0了,快下載,炸裂了!
    >就在剛剛微信更新了最新版本 8.0,咱們先看視頻感受一下:首先,這個啟動畫面太贊了,真是簡單大氣,符合微信的一貫風格。再次,微信也可以設置狀態了,讓大家時刻了解你的狀態,是不是很酷。最後,最炸裂的微信表情都動起來,看著也立體很多
  • 如何恢復微信刪除的聊天記錄?教程看一遍就會!
    如何恢復微信刪除的聊天記錄?教程看一遍就會!我們日常生活中經常會有誤刪微信聊天記錄的情況發生,誤刪重要的微信聊天記錄會讓我們蒙受不必要的損失,要是能夠找回來就可以挽救,那麼我們怎樣做能夠恢復刪除的聊天記錄呢?其實可以試試下面的方法!針對於安卓、蘋果機型都適用!
  • 雲會員卡管理系統店鋪儲值計次美容美髮汽車微信會員積分收銀軟體
    美萍雲會員管理軟體是一款提供會員管理,數據分析的移動辦公軟體,雲端儲存數據,不怕丟失,操作界面簡單易上手。搜索「美萍雲會員」即可在線免費使用!無需安裝 自動部署裝系統交給我們 裝資料庫交給我們 裝軟體交給我們您只需要專心管理 安心營業一鍵全自動部署完成 從此告別系統重裝資料庫出錯 硬體故障等等煩惱一體機 電腦 手機 平板多端操作 數據同步
  • 微信上的微信投票活動怎麼做?如何在微信上進行投票活動?
    這兩年,隨著廣大用戶對微信投票的需求增長,微信投票管理系統如雨後春筍般不斷的出現。很多用戶在使用此類系統的時候,不知道具體該怎麼開始,今天小編就把製作微信投票連結的步驟梳理一篇。
  • 如何設計和製作微信紅包
    微信紅包是目前非常火的一款H5應用,那麼怎麼設計和製作微信紅包呢?本經驗閱讀對象為微信行業有H5經驗的前端人員。本經驗主要內容如下設計合理的紅包流程,如下圖所示,展示了用戶側的相關操作,此次活動用戶最多只有一次獲獎機會,另一方面,伺服器開啟定時輪詢服務,用於發放紅包.
  • 如何清除手機內的微信記錄?想徹底刪除 這樣做更科學!
    如何清除手機內的微信記錄?手機內微信記錄過多對於手機空間的負擔相當大,因為微信每天幾千兆的數據存儲到手機空間中,造成手機內存嚴重不足。所以必須定期清理手機內的微信記錄,從而保證手機內存有足夠的空間存儲數據。當然刪除手機內的微信記錄還可以保護手機數據隱私安全。為此小編為大家分享三種科學的刪除技巧,來保護我們的個人信息隱私安全!
  • 騰訊封殺第三方微信工具,泰國運營商80億網際網路記錄資料庫洩漏
    2、騰訊封殺第三方微信工具,大量wetool使用者被封號近日據鳥哥筆記用戶反饋,大量微信社群運營工具wetool的使用者微信號被封,wetool 創始人劉睿泳表示,正在與微信官方溝通,會尊重官方決定,也會妥善處理後續事宜。並建議各位用戶近期先退出wetool,避免封號。
  • 用 PyWeChatSpy 自動回復微信拍一拍
    前不久微信上線了拍一拍功能
  • Python Tool 101 - Tool 002 - Python 情感分析 SnowNLP
    SnowNLP是咋們中國人受到了TextBlob的啟發後開發的python類庫,能夠非常方便的處理中文文本內容,劃重點方便處理中文的類庫!!!,類庫中的算法和訓練好的字典都已經準備好了。唯一需要注意的是要使用unicode編碼,所以使用時請自行decode成unicode。知道這個SnowNLP是什麼之後,我們開始設計下實驗方案。
  • 微信還能這樣玩
    繼昨天向大家介紹了一款查看撤回信息的大殺器後,今天向大家介紹一下另外一款神器——微信自動回復機器人。       這次的代碼很簡單,總共不到20行。(對的,我就是調包俠,哈哈哈)不過還是需要大家事先安裝幾個包requests和itchat兩個包。