Python Bot Twitch Viewer (Selenium)

Итак, в основном я работаю над скриптом Python, который входит в учетную запись Twitch и остается там, чтобы создать средство просмотра.

Но моя главная проблема заключается в том, как заставить это работать для нескольких учетных записей.

Как скрыть все окна и как я могу обрабатывать несколько окон селена?

Подходит ли селен для этого или есть другой способ?

from selenium import webdriver
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--mute-audio")
driver = webdriver.Chrome("D:\Downloads\chromedriver_win32\chromedriver.exe", chrome_options=chrome_options)


driver.minimize_window()

driver.get('https://www.twitch.tv/login')
search_form = driver.find_element_by_id('login-username')
search_form.send_keys('user')
search_form = driver.find_element_by_id('password-input')
search_form.send_keys('password')
search_form.submit()
driver.implicitly_wait(10)
driver.get('https://www.twitch.tv/channel')

person InvolveX    schedule 04.09.2020    source источник
comment
Звучит так, как будто это нарушает несколько соглашений между пользователями и разработчиками с Twitch.   -  person Kraay89    schedule 04.09.2020
comment
Главный вопрос: как запустить несколько экземпляров селена?   -  person InvolveX    schedule 04.09.2020


Ответы (2)


Вы определенно можете использовать Selenium и Python для этого. Чтобы запустить несколько учетных записей, вам придется использовать многопоточность или создать несколько объектов драйвера для управления.

Пример многопоточности из этого поток:

from selenium import webdriver
import threading
import time

def test_logic():
    driver = webdriver.Firefox()
    url = 'https://www.google.co.in'
    driver.get(url)
    # Implement your test logic
    time.sleep(2)
    driver.quit()

N = 5   # Number of browsers to spawn
thread_list = list()

# Start test
for i in range(N):
    t = threading.Thread(name='Test {}'.format(i), target=test_logic)
    t.start()
    time.sleep(1)
    print t.name + ' started!'
    thread_list.append(t)

# Wait for all thre<ads to complete
for thread in thread_list:
    thread.join()

print 'Test completed!'

Каждому водителю придется использовать прокси-соединение для подключения к Twitch на отдельных IP-адресах. Я предлагаю использовать Opera, так как она имеет встроенный VPN, что значительно упрощает работу.

Пример Opera и Selenium из этого потока:

from selenium import webdriver
from time import sleep

# The profile directory which Opera VPN was enabled manually using the GUI
opera_profile = '/home/user-directory/.config/opera' 
options = webdriver.ChromeOptions()
options.add_argument('user-data-dir=' + opera_profile)
driver = webdriver.Opera(options=options)
driver.get('https://whatismyipaddress.com')
sleep(10)
driver.quit()

Чтобы скрыть консоль для веб-драйверов, вы должны запустить их с опцией «без головы». Безголовый для драйвера Chrome.

from selenium import webdriver from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument("--headless")

К сожалению, безголовый режим не поддерживается драйвером Opera, поэтому для этого необходимо использовать Chrome или Firefox.

Удачи!

person johncorbin36    schedule 19.11.2020
comment
Добро пожаловать в СО! Хотя содержание предоставленных вами ссылок может ответить на вопрос, лучше включить основные части ответа в свое сообщение и предоставить ссылку для справки, поскольку ответы, содержащие только ссылки, становятся недействительными, если связанная страница изменяется. - person Patrick Klein; 19.11.2020

привет, вы не сможете создать бота с селеном, потому что даже если вам удастся подключить несколько учетных записей к учетной записи twitch, twitch (например, youtube) имеет систему, которая смотрит на ваш IP-адрес и не увеличивает количество просмотров, если множественное подключение происходит с одного и того же компьютера.

person Raphaël Gervillié    schedule 04.09.2020
comment
нельзя ли использовать прокси? - person InvolveX; 04.09.2020