前言: 我不喜歡在電腦上安裝微信客戶端,如有需要,就直接在瀏覽器登錄網頁版微信。今天在思考問題時遇見他們在羣裏刷屏,咚咚咚…的響,突然想到能不能寫一個自動發消息(刷屏)的程序,就想到了送出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朵玫瑰已經爲你送出!
微信截圖:
祝福:願天下有情人終成眷屬!!!