Python使用Whatsapp?
在本节中,我们将创建一个Whatsapp聊天机器人,但与Twitter或Facebook聊天机器人不同,由于Whatsapp的策略,它们不会直接在该平台上运行。
但是,有一种方法可以解决此问题,使用selenium,它是Python的一个非常智能的包,开发人员可以通过它自动化浏览器的活动。这样,我们就可以通过浏览器使用whatsapp-web。
阅读更多:Python 教程
要求
我们需要三样基本的东西才能做到这一点:Selenium。
我们可以使用pip轻松安装selenium,只需在您的终端上运行以下命令−
$pip install selenium
- Chrome / Firefox或任何其他webdriver。
由于我使用的是Chrome webdriver,因此以下是根据您的操作系统下载Chrome webdriver的链接。
- ** https://chromedriver.storage.googleapis.com/index.html?path=2.46/ **
-
Whatsapp帐户。
如果没有,请创建Whatsapp帐户。
以下是一个简单的程序,可使用Python向特定联系人发送whatsapp消息。
例子
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
import time
import sys
# 将下面的路径替换为计算机中chromedriver的绝对路径
driver = webdriver.Chrome(r'c:\users\rajesh\Desktop\chromedriver')
driver.get("https://web.whatsapp.com/")
# time.sleep()
wait = WebDriverWait(driver, 600)
# 将'My Bsnl'替换为您的朋友或组名
target = '"My Bsnl"'
# 将以下字符串替换为您自己的消息
string = sys.argv[1]
x_arg = '//span[contains(@title,' + target + ')]'
group_title = wait.until(EC.presence_of_element_located((
By.XPATH, x_arg)))
print (group_title)
print ("Wait for few seconds")
group_title.click()
message = driver.find_elements_by_xpath('//*[@id="main"]/footer/div[1]/div[2]/div/div[2]')[0]
message.send_keys(string)
sendbutton = driver.find_elements_by_xpath('//*[@id="main"]/footer/div[1]/div[3]/button')[0]
sendbutton.click()
driver.close()
让我们在命令提示符上运行上面的脚本,并将消息作为参数传递给whatsapp联系人−
>python whatsppPython.py "Hello"
DevTools listening on ws://127.0.0.1:12954/devtools/browser/a5bb04bd-66a3-4002-999f-6a0824f591da
<selenium.webdriver.remote.webelement.WebElement (session="83e7034b9a6f6b49e9e422e655f270d3", element="0.30994636046479007-1")>
after wait
….
…..
Chrome浏览器将打开,屏幕类似于−

在移动设备上,在Whatsapp的顶部栏中选择whatsapp web。扫描出现在屏幕上的QR码。
这里我们可以看到消息已发送到特定联系人(“My Bsnl”)。

极客教程