Как мне правильно конвертировать этот файл в ехе, чтобы он работал как надо?
Через интерпретатор программа работает исправно
from selenium import webdriver
import time
from multiprocessing import Pool
import random
options = webdriver.ChromeOptions()
options.add_argument("--disable-blink-features=AutomationControlled")
options.add_argument(
"user-agent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36")
def get_data(url):
try:
driver = webdriver.Chrome(
executable_path=r"C:\Users\\gfxvo\PycharmProjects\seleniumLibrary\chrome_driver\chromedriver.exe",
options=options
)
driver.get(url=url)
print("took url")
time.sleep(3)
driver.find_element_by_xpath("//div[@role='button']").click()
print("closed captcha")
time.sleep(3)
driver.find_element_by_class_name("item-video-container").click()
print("opened video")
time.sleep(random.randrange(30, 40))
except Exception as ex:
print(ex)
finally:
driver.close()
driver.quit()
if __name__ == "__main__":
process_count = 2
url = "https://www.tiktok.com/"
urls_list = [url] * process_count
p = Pool(processes=process_count)
p.map(get_data, urls_list)
Я использовал auto-py-to-exe, чтобы переделать эту программу под ехе-шник, у меня получилось, но вот программа не работает. Ехе-шник в моей теории должен запускать 2 вкладки с тик-током, а через время их закрывать.
Ответы (1 шт):
Автор решения: gil9red
→ Ссылка
Из комментариев выяснилось, что при использовании процессов код не выполнялся:
from multiprocessing import Pool
...
p.map(get_data, urls_list)
Решением будет использовать потоки, для этого достаточно поменять импорт на:
from multiprocessing.dummy import Pool