# 小豬的Python學習之旅 —— 18.Python微信轉發(fā)小宇宙早報

一句話概括本文

利用itchat,監(jiān)控特定信息,轉發(fā)到特定微信群~


引言

上一篇 小豬的Python學習之旅 —— 17.Python數(shù)據(jù)分析:我主良緣交友了解下
貌似反響不錯,一堆微信加群的,后面有個小伙伴說看到我的文章,是被推薦到了
掘金Python群的早報,掘金竟然還有官方Py群,妥妥地讓他拉我進群啊,然后呢,
里面的掘金之餅趙小餅是個機器人,會拉人,發(fā)表之類的,覺得有些意思,自己
也搜了一下相關的庫Star了,以后怕是會用到。這不,今天就搞了個簡單的東西
玩玩,場景是這樣的:

在干貨群里有個蘑菇云大佬天天發(fā)小宇宙早報,比如今天的:

#每天清晨花60秒了解昨夜今晨的世界大事#

小宇宙整理第663天早安快報,3月30日,星期五,農(nóng)歷二月十四!

1、交通部:全國190個城市實現(xiàn)交通一卡通互聯(lián)互通;

2、霍金墓地將與牛頓達爾文為鄰 葬禮只邀請家人朋友參加;

3、央行貨幣金銀工作會議:開展對各類虛擬貨幣的整頓清理;

4、三大運營商年報對比:賺錢方面,聯(lián)通+電信=0.18個移動;

5、愛奇藝 正式登陸納斯達克 成為目前國內視頻平臺中唯一的上市公司;

6、6秒42!國際田聯(lián)正式官宣:中國選手蘇炳添以6秒42的成績創(chuàng)造了新的亞洲紀錄!

7、WiFi萬能鑰匙回應“竊取用戶密碼”:原理是熱點共享 不是破解;

8、動車降價!28條城際鐵路動車票價最大折扣將提高至20%;

9、臉書丑聞發(fā)酵,劍橋分析母公司被指研究印度選民數(shù)據(jù),花花公子宣布刪除Facebook官方主頁;

10、提議樂視破產(chǎn)重整或退市,孫宏斌或涉嫌"操縱市場";

【早安微語】Time goes by so fast, people go in and out of your life. 如梭時光,生命中人來人往

然后呢,之前自己發(fā)到過幾個群里,都很喜歡看這個,然后天天早上@我發(fā),
然而我也是轉發(fā)別人的,別人沒發(fā)我怎么發(fā)?我跟你講我就是這個表情:

然后呢,每次我都要翻一堆聊天記錄,找到小宇宙日報,然后轉發(fā),
有時蘑菇云大佬有事,或者我開會忙之類的,往往早報變成了午報。

說有沒有公號之類的,就死了這條心吧,目前是沒有的,專門發(fā)新聞那個
群是要付費的,已經(jīng)問過小宇宙本人了,只是他偶爾會在一些群里發(fā)。

作為一個Py玩家,肯定要想辦法解放自己的雙手啊,讓自動來,套路也不復雜:

監(jiān)測到小宇宙或者蘑菇云發(fā)送的今天的小宇宙,就轉發(fā)到特定的群。

怎么監(jiān)測?

  • 1.抓包?naive,微信用的自己的協(xié)議,研究有得你研究。
  • 2.寫個xposed模塊,類似于自動搶紅包的套路?監(jiān)聽接收消息的函數(shù),
    遇到是小宇宙的信息,直接把信息發(fā)送到特定的群?投入時間成本比較
    高,有得整,最主要我知道些,并不熟悉...
  • 3.打開瀏覽器登錄微信網(wǎng)頁端,自己處理網(wǎng)頁結構之類的?放棄

最后想起之前star的:itchathttps://github.com/littlecodersh/ItChat

嘖嘖,有點意思,反正寫著基于微信網(wǎng)頁端,網(wǎng)頁端能干的,這個都能干。


1.用itchat寫個小宇宙早報轉發(fā)腳本

顯示命令行走一波pip裝下庫:

pip install itchat

接著分析下我們的流程:

  • 1.監(jiān)聽群聊信息
  • 2.正則過濾當天的小宇宙早報
  • 3.如果過濾到小宇宙早報,判斷是否為小宇宙本人發(fā)的(避免有些人調戲機器人)
  • 4.把新聞轉發(fā)到某些特定的群
  • 5.本地測試沒問題后,把腳本丟到騰訊云服務器上跑

另外要注意:

移動端要保證微信號在線,不然網(wǎng)頁端會斷開鏈接,具體網(wǎng)頁端時效性有多久,
還不知道,另外感覺長時間不發(fā)信息會被下線,故加個定時器,每隔半個小時
往一個沒用的群里發(fā)送一條信息。

大概實現(xiàn)流程如上所述,接著開始擼代碼

過濾小宇宙早報的正則

對接收到的信息做正則,小宇宙的,而且是特定人發(fā)的,
遍歷群發(fā)的組,調用send方法發(fā)送信息。

接著main方法調用下,會彈出一個二維碼頁面讓你掃:

接著就可以試試發(fā)下早報了,復制了今天的小宇宙,另外建了三個群聊,
接著隨便往其中的一個發(fā)小宇宙~

到此相信就沒什么疑問了吧,非常簡單,接著Timer寫個定時器,
每個半個小時往探挽懶月群里發(fā)一條廣告詞

代碼如下

先把時間改成10s看下結果:

可以,接下來就是把腳本丟服務器上執(zhí)行了。


2.把腳本丟到服務器上運行(利用Screen命令)

不知道你還記不記得ssh連服務器執(zhí)行py腳本,終端關閉后,腳本也會停止,
如果不記得可以看回之前寫的:8.爬蟲實戰(zhàn):刷某博客站點的訪問量
那里調用的是nohup命令,以后臺程序的方式執(zhí)行我們的腳本。

評論區(qū)那里有個掘金大佬評論說可以試試screen(虛擬終端),這里就來試試~

基本用法如下

  • 1.新建Screenscreen -S screen名字
  • 2.Screen里新建虛擬終端:組合鍵:ctrl + a + c
  • 3.在多個虛擬終端間切換:組合鍵:ctrl + a + p (上一個),
    ctrl + a + n (后一個),ctrl + a + shirt + " (終端列表之間切換)
  • 4.關閉一個虛擬終端ctrl + a + k 或者鍵入 exit
  • 5.掛起當前screen,回到之前的shell:ctrl + a + d
  • 6.重新連接screen:鍵入screen -ls列出所有screen,鍵入screen - r xxx重新連接;

接著依舊復制下小宇宙發(fā)到群里,看是否能正常轉發(fā)~

到此就完了,腳本掛著,手機微信也需要登著,坐等明天小宇宙發(fā)早報
來檢驗效果啦~


小結

本節(jié)試了下itchat,寫了個監(jiān)控小宇宙發(fā)的日報,并轉發(fā)到某特定群
的小腳本,挺有意思的,當然你可以自行擴展做個機器人,比如每天
定時發(fā)車,每日一女優(yōu)介紹,每日一車牌號?或者一些其他的信息,
結合后臺玩起來更嗨,當然這就是后面的事了~

最后祝周末愉快~


附:最終代碼(都可以在:https://github.com/coder-pig/ReptileSomething 找到):

image
# 微信小宇宙助手
import itchat
from itchat.content import *
import datetime
import re
import time
from threading import Timer

xyz_compile = re.compile(r'.*?小宇宙整理.*?%d月%d日.*'
                         % (datetime.datetime.now().month, datetime.datetime.now().day), re.S)


# 小宇宙日報抓取
@itchat.msg_register([TEXT], isGroupChat=True)
def xyz_reply(msg):
    group_list = [u'我是渣渣輝', u'我是轱天樂', u'探挽懶月']
    group_name = []
    for group in group_list:
        chat = itchat.search_chatrooms(name=group)
        if len(chat) > 0:
            group_name.append(chat[0]['UserName'])
    # 過濾小宇宙新聞
    result = xyz_compile.search(msg['Content'])

    if result is not None:
        if result.group() is not None and msg['ActualNickName'] == '十二':
            for group in group_name:
                itchat.send('%s' % (msg['Content']), toUserName=group)


# 發(fā)信息
def send_msg():
    sched_time = datetime.datetime(2018, 3, 30, 16, 30, 0)
    flag = 0
    while True:
        now = datetime.datetime.now()
        if now == sched_time < now < (sched_time + datetime.timedelta(seconds=10)):
            flag = 1
            time.sleep(1)
        else:
            if flag == 1:
                itchat.send('123', toUserName=u'探挽懶月')
                flag = 0


# 每個半個小時發(fā)依次信息貌似能防止掉線
def loop_send():
    global count
    itchat.send('大扎好,我系轱天樂,我四渣嘎輝,探挽懶月,介四里沒有挽過的船新版本,'
                '擠需體驗三番鐘,里造會干我一樣,愛像借款游戲。'
                , toUserName=itchat.search_chatrooms(name=u'探挽懶月')[0]['UserName'])
    count += 1
    if count < 10000:
        Timer(1800, loop_send).start()


if __name__ == '__main__':
    count = 0
    Timer(1800, loop_send).start()
    itchat.auto_login(enableCmdQR=2, hotReload=True)
    itchat.run()

來啊,Py交易啊

想加群一起學習Py的可以加下,智障機器人小Pig,驗證信息里包含:
PythonpythonpyPy加群交易屁眼 中的一個關鍵詞即可通過;

驗證通過后回復 加群 即可獲得加群鏈接(不要把機器人玩壞了!!!)~~~
歡迎各種像我一樣的Py初學者,Py大神加入,一起愉快地交流學♂習,van♂轉py。


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,117評論 6 537
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,860評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,128評論 0 381
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,291評論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,025評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,421評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,477評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,642評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,177評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,970評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,157評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,717評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,410評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,821評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,053評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,896評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,157評論 2 375

推薦閱讀更多精彩內容