我在python上制作了Instagram bot,但是不能为它制作make接口而且不知道如何用功能连接按钮(tkinter)
我试图在谷歌寻找一些信息但却什么都不懂。
import sys
import random
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
liked = 0
login = input('Your login :')
passwd= input('Your password:')
driver = webdriver.Chrome(executable_path=r'D:\path\chromedriver.exe')
hashtag_list = ['travelblog', 'travelblogger', 'traveler']
tag = -1
followed = 0
print(len(hashtag_list))
div = ['div[1]','div[2]','div[3]']
#вход
driver.get('https://www.instagram.com/accounts/login/?source=auth_switcher')
login_form = driver.find_element_by_name('username')
login_form.send_keys(login)
login_from = driver.find_element_by_name('password')
login_from.send_keys(passwd)
login_form.send_keys(Keys.ENTER)
#Отключить уведомления
time.sleep(3)
notifications = driver.find_element_by_xpath("//button[@class='aOOlW HoLwm ']")
notifications.click()
#Лайкать первые 3 поста по тегу
#переход по хештегу
while liked<= 900:
for i in range(len(hashtag_list)):
tag +=1
driver.get('https://www.instagram.com/explore/tags/'+ hashtag_list[tag]+'/')
time.sleep(2)
likes = 0
#Зайти на пост поставить лайк выйти...
for i in range(1,3):
wait = random.randint(5,15)
wait1 = random.randint(1,5)
#открыть пост
npost = driver.find_element_by_xpath('//*[@id="react-root"]/section/main/article/div[2]/div/div[1]/'+div[likes]+'/a/div[1]/div[2]')
npost.click()
time.sleep(wait)
wait = random.randint(5,15)
wait1 = random.randint(1,5)
#лайк
like = driver.find_element_by_xpath('/html/body/div[3]/div[2]/div/article/div[2]/section[1]/span[1]/button/span')
like.click()
liked+=1
time.sleep(wait)
wait = random.randint(5,15)
wait1 = random.randint(1,5)
print(liked)
#подписаться
follow = driver.find_element_by_xpath('/html/body/div[3]/div[2]/div/article/header/div[2]/div[1]/div[2]/button')
follow.click()
time.sleep(wait)
wait = random.randint(5,15)
wait1 = random.randint(1,5)
#unfollow
unfollow1 = driver.find_element_by_xpath('/html/body/div[3]/div[2]/div/article/header/div[2]/div[1]/div[2]/button')
unfollow1.click()
time.sleep(wait1)
unfollow2 = driver.find_element_by_xpath('/html/body/div[4]/div/div/div[3]/button[1]')
unfollow2.click()
time.sleep(wait1)
wait = random.randint(5,15)
wait1 = random.randint(1,5)
#закрыть пост
close = driver.find_element_by_xpath('/html/body/div[3]/button[1]')
close.click()
time.sleep(wait1)
wait = random.randint(5,15)
wait1 = random.randint(1,5)
likes+=1
print(liked)
没有错误,但我不知道如何将它与tkinter连接以及如何缩短它。
使用按钮打开和关闭Selenium窗口的最小示例。
因为Selenium需要一些时间来打开浏览器的窗口,所以tkinter的窗口会冻结。
import tkinter as tk
import selenium.webdriver
# --- functions ---
def on_open():
global driver
if not driver:
driver = selenium.webdriver.Firefox()
url = e.get()
driver.get(url)
def on_close():
global driver
if driver:
driver.close()
driver = None
# --- main ---
driver = None
root = tk.Tk()
e = tk.Entry(root)
e.pack()
e.insert('end', 'https://stackoverflow.com')
b = tk.Button(root, text='Selenium Open', command=on_open)
b.pack()
b = tk.Button(root, text='Selenium Close', command=on_close)
b.pack()
root.mainloop()