📜  在Python中使用Selenium在 Instagram 上发送直接消息(1)

📅  最后修改于: 2023-12-03 14:51:20.090000             🧑  作者: Mango

在Python中使用Selenium在 Instagram 上发送直接消息

Instagram 是一个非常流行的社交媒体平台,它允许用户分享照片和视频,并与其他用户互动。Selenium 是一个流行的测试框架,它可以自动化网站和应用程序的测试过程。在这篇文章中,我将向您介绍如何使用 Selenium 在 Instagram 上发送直接消息,以便更好地管理您的账户和与其他用户互动。

安装 Selenium

首先,您需要安装 Selenium。您可以使用 pip 安装 Selenium,命令如下所示:

pip install selenium
下载浏览器驱动

接下来,您需要下载与您使用的浏览器匹配的驱动程序。例如,如果您使用的是 Google Chrome 浏览器,则需要下载 Chrome 驱动程序。您可以从以下链接下载:

在这篇文章中,我将使用 Google Chrome 浏览器和与之兼容的 Chrome 驱动程序。确保将下载的驱动程序放在您的 PATH 环境变量中。

登录到您的 Instagram 账户

使用 Selenium,在 Instagram 上发送直接消息之前,您需要登录到您的账户。以下是如何完成这项任务的代码:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

# 创建一个 Chrome Webdriver 实例
driver = webdriver.Chrome()

# 打开 Instagram 登录页面
driver.get("https://www.instagram.com/accounts/login/")

# 在用户名和密码字段中输入账户信息
username_field = driver.find_element_by_name("username")
password_field = driver.find_element_by_name("password")
username_field.send_keys("your_username")
password_field.send_keys("your_password")
password_field.send_keys(Keys.RETURN)

# 如果需要,等待手动登陆
input("请在浏览器中登录,然后按 Enter 键继续...")

# 登录后,跳转到 Instagram 主页
driver.get("https://www.instagram.com/")
查找要发送消息的用户

在登录到您的账户之后,您需要查找要发送消息的用户。以下是在搜索框中输入用户名称的代码:

# 在 Instagram 主页上搜索要发送消息的用户
search_field = driver.find_element_by_xpath("//input[@placeholder='Search']")
search_field.send_keys("user_to_send_message_to")
点击用户的主页

在输入用户名称后,您可以使用 Selenium 单击搜索结果中的用户主页。

# 点击搜索结果中的第一个用户
search_results = driver.find_elements_by_class_name("-qQT3")[0]
search_results.click()

# 如果需要,等待页面加载
time.sleep(2)
点击发送消息按钮

在发送消息之前,您需要在用户的主页上单击“发送消息”按钮。以下是如何完成这项任务:

# 点击发送消息按钮
send_message_button = driver.find_element_by_xpath("//button[text()='Send Message']")
send_message_button.click()

# 如果需要,等待页面加载
time.sleep(2)
在 Instagram 上发送消息

现在,您已经到达发送消息界面。在这里,您可以使用 Selenium 找到文本框并将消息发送给该用户:

# 在消息框中输入消息
message_box = driver.find_element_by_tag_name("textarea")
message = "Your message text goes here."
message_box.send_keys(message)

# 点击发送按钮
send_button = driver.find_element_by_xpath("//button[text()='Send']")
send_button.click()

# 如果需要,等待消息发送
time.sleep(2)
完整代码

以下是将前面所有的代码段组合在一起的完整代码:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

# 创建一个 Chrome Webdriver 实例
driver = webdriver.Chrome()

# 打开 Instagram 登录页面
driver.get("https://www.instagram.com/accounts/login/")

# 在用户名和密码字段中输入账户信息
username_field = driver.find_element_by_name("username")
password_field = driver.find_element_by_name("password")
username_field.send_keys("your_username")
password_field.send_keys("your_password")
password_field.send_keys(Keys.RETURN)

# 如果需要,等待手动登陆
input("请在浏览器中登录,然后按 Enter 键继续...")

# 登录后,跳转到 Instagram 主页
driver.get("https://www.instagram.com/")

# 在 Instagram 主页上搜索要发送消息的用户
search_field = driver.find_element_by_xpath("//input[@placeholder='Search']")
search_field.send_keys("user_to_send_message_to")

# 点击搜索结果中的第一个用户
search_results = driver.find_elements_by_class_name("-qQT3")[0]
search_results.click()

# 如果需要,等待页面加载
time.sleep(2)

# 点击发送消息按钮
send_message_button = driver.find_element_by_xpath("//button[text()='Send Message']")
send_message_button.click()

# 如果需要,等待页面加载
time.sleep(2)

# 在消息框中输入消息
message_box = driver.find_element_by_tag_name("textarea")
message = "Your message text goes here."
message_box.send_keys(message)

# 点击发送按钮
send_button = driver.find_element_by_xpath("//button[text()='Send']")
send_button.click()

# 如果需要,等待消息发送
time.sleep(2)

# 关闭浏览器
driver.quit()

这就是如何使用 Selenium 在 Instagram 上发送直接消息的全部内容。如您所见,在 Python 中使用 Selenium 可以自动化几乎所有任务。