程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

python爬蟲實時轉發文章新聞;微信機器人使用;「建議收藏」

編輯:Python

大家好,又見面了,我是你們的朋友全棧君。

前言:當前時間2022-4-24 已經有五個月沒水文章了!personally技術不增反退,鹹扯蛋!

今天搞個好玩的,用“鬼手”搞的免費版的微信pc端機器人+爬蟲用來實時轉發文章或新聞啥的!

感謝“鬼手”免費分享的源碼!(鄙人就單純喜歡打感歎號!沒其他意思!不是強調!)

一、介紹“鬼手”的pc端微信使用

先甩github鏈接:https://github.com/cixingguangming55555/wechat-bot

裡面有使用教程,但為了方便和本著就是講細的原則還是說說吧。

1、下載源碼(廢話0.0)

2、下載對應的微信版本,以下版本接口都可,因為“鬼手”已經全部提供了一下版本的dll

微信全部版本 提取碼:ha4a

3、登錄微信,在server路徑下打開微信DLL注入器,選擇對應的版本,點擊注入即可!

4、開始敲代碼,”鬼手”已經在client路徑下給了一些語言(java,python…)模板!

使用的websocket連接,websocket又分長短連接,我們為了方便就是使用短連接!

以下代碼實現三個功能:查詢群和用戶id、@群成員發消息、發送圖片或文件。代碼是一起的,為了方便觀看就拆分開來!

1、查詢群和用戶id

# -*- coding:utf-8 -*-
# author:BC
import websocket
import time
import json
SERVER = 'ws://127.0.0.1:5555'
AT_MSG = 550
USER_LIST = 5000
PIC_MSG = 500
ATTATCH_FILE = 5003
def getid():
id = time.strftime("%Y%m%d%H%M%S", time.localtime(time.time()))
return id
# 獲取微信通訊錄用戶名字和wxid
def send_wxuser_list():
qs = {
'id': getid(),
'type': USER_LIST,
'content': 'user list',
'wxid': 'null',
}
s = json.dumps(qs)
return s
# 打印群名
def print_wxuser():
ws = websocket.create_connection(SERVER)
ws.send(send_wxuser_list())
result = json.loads(ws.recv())
content = result['content']
for item in content:
id = item['wxid']
m = id.find('@')
if m != -1:
print(f'微信群:---->roomid:{id}----name:{item["name"]}')
else:
print(f'用戶:---->roomid:{id}----name:{item["name"]}')
if __name__ == '__main__':
ws = websocket.create_connection(SERVER)
print_wxuser()

2、@群成員發消息

# 艾特群成員 以下都是必要參數
def send_at_msg(roomid, content, nickname):
j = {
'id': getid(),
'type': AT_MSG,
'roomid': roomid,
'wxid': 'your wxid',
'content': content,
'nickname': nickname,
'ext': 'null'
}
s = json.dumps(j)
return s
if __name__ == '__main__':
roomid = input('Roomid:') # 群id或用戶id
content = input('send Content:') # 需要發送的內容
nickname = input('@ name required:') # 被@人名
ws.send(send_at_msg(roomid, content, nickname))
print('[**]艾特成功!!!')

3、發送圖片或文件

# 發送圖片或文件
def send_pic_msg(type, wxid, path):
j = {
'id': getid(),
'type': type,
'wxid': wxid,
'roomid': 'null',
'content': path,
'nickname': "null",
'ext': 'null'
}
s = json.dumps(j)
return s
if __name__ == '__main__':
type = input('[***]功能選項----A、發送圖片\tB、發送文件(輸入大小寫字母即可):')
wxid = input('wxid:') # 群id或用戶id
path = input('path:') # 需要發送的文件路徑
if type == 'A' or type == 'a':
ws.send(send_pic_msg(PIC_MSG, wxid, path))
print('[**]圖片發送成功!!!')
elif type == 'B' or type == 'b':
ws.send(send_pic_msg(ATTATCH_FILE, wxid, path))
print('[**]文件發送成功!!!')

二、搞個爬蟲

阿吧阿吧…(打算弄個知識星球爬蟲的模板!感覺多此一舉就省略吧!)

三、兩個一綜合,那不就出來了嘛!對爬蟲寫個循環讓其一直檢測是否有最新的數據,就實現簡單的監控了嘛!有新消息第一時間就分享出來!

ws = websocket.create_connection(SERVER)
ws.send(send_at_msg(roomid, str(content), nickname)) # 群id、內容、@人名
ws.close()

效果圖:

四、提示

寫個循環,不就可一直發微信消息了嘛!(她或他不理你,那就轟炸他)嘿嘿邪惡!勿輕易嘗試,後果自負!

結束語:

寫了半天,感覺又像沒寫!一大堆廢話,確實水跨跨的!就這樣吧!

寂寞梧桐春院鎖清秋,剪不斷,理還亂…

發布者:全棧程序員棧長,轉載請注明出處:https://javaforall.cn/150698.html原文鏈接:https://javaforall.cn


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved