前言: 我不喜欢在电脑上安装微信客户端,如有需要,就直接在浏览器登录网页版微信。今天在思考问题时遇见他们在群里刷屏,咚咚咚…的响,突然想到能不能写一个自动发消息(刷屏)的程序,就想到了送出99朵玫瑰,从1朵送到99朵。
微信网页版: https://wx2.qq.com/
工具: Python+selenium,Goole浏览器
思路:
- 打开网页版微信
- 手机微信扫码登录
- 使用搜索框搜索微信好友
- 点击表情包
- 循环点击玫瑰花
- 达到条件后点击发送按钮
- 条件判断,满足则继续循环,否则发送文字并结束循环
源码汇总如下:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
driver = webdriver.Chrome()
driver.implicitly_wait(5)
chrome_option = webdriver.ChromeOptions()
chrome_option.add_argument('--proxy--server=127.0.0.1:8080')#使用代理IP,告诉服务器这是人为操作
driver.get('https://wx2.qq.com/')#打开网页版微信
time.sleep(10)
search = driver.find_element_by_xpath('//*[@id="search_bar"]/input')#查找搜索框
search.click()#点击搜索框
time.sleep(1)
name = input("请输入微信好友:")
num = int(input("请输入发送的数量:"))
search.send_keys(name)#输入微信好友搜索
time.sleep(6)#等待加载好友
search.send_keys(Keys.ENTER)#默认点击第一个好友
global count#
count = 0
def start():
driver.find_element_by_xpath('//*[@id="tool_bar"]/a[1]').click()#点击表情包
rose()
def rose():
global count
count = count + 1
run = 0#利用主函数原理重置run
while run < count:
#点击玫瑰
driver.find_element_by_xpath('//*[@id="mmpop_emoji_panel"]/div/div/div[1]/div[1]/div/a[64]').click()
run = run + 1
print ("已发送%s支玫瑰"%count)
driver.find_element_by_xpath('//*[@id="chatArea"]/div[3]/div[3]/a').click()#点击发送
if count < num:
start()
else:
driver.find_element_by_xpath('//*[@id="editArea"]').send_keys("已为小主献上%s朵玫瑰!"%num)#输入文字
driver.find_element_by_xpath('//*[@id="chatArea"]/div[3]/div[3]/a').click()#点击发送
print ("第%s朵玫瑰已经为你送出!"%num)
if __name__ == '__main__':
start()
运行结果:
请输入微信好友:XXX
请输入发送的数量:9
已发送1支玫瑰
已发送2支玫瑰
已发送3支玫瑰
已发送4支玫瑰
已发送5支玫瑰
已发送6支玫瑰
已发送7支玫瑰
已发送8支玫瑰
已发送9支玫瑰
第9朵玫瑰已经为你送出!
微信截图:
祝福:愿天下有情人终成眷属!!!