0
0 комментариев

Есть задача (для себя) написать бот для просмотра видео на Перископе.

Алгоритм:

  1. Вставляешь ссылку на трансляцию и даём значение переменной n = количество выполнений пунктов 3 и 4.

  2. Идёт проверка каждые «n» секунд наличие текста на сайте, если текст на сайте есть переходим к 3 пункту.

  3. Скрипт запускает на просмотр видео и одновременно пингует на наличие на сайте текста о завершение трансляции, после завершения трансляции, переходим к 4 пункту.

Но тут возникают ошибки (основная запись):

ConnectionRefusedError: [WinError 10061] Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение

Думал что поможет исправить проблему увелечение интервала запросов на сайт, ставил ожидание 120 сек., не помогло.

Сам код программы:

from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
import time
 
global n
n = 0
global i
i = 0
 
def getProfile():
    profile = webdriver.FirefoxProfile()
    profile.set_preference("browser.privatebrowsing.autostart", True)
    return profile
 
def work(driver):
    time.sleep(120)
    try:
        driver.find_element_by_id('video_swf_0')
    except NoSuchElementException:
        print('Такого элемента на сайте существует!')
        driver.close()
        time.sleep(120)
        work(driver)
    else:
        print('Такой элемент на сайте существует!')
        driver.close()
        time.sleep(120)
        works(driver)
 
def works(driver):
    while (i<=n):
        time.sleep(120)
        driver = webdriver.Firefox(firefox_profile=getProfile())
        driver.implicitly_wait(5) # seconds
        driver.get(url_t)
        time.sleep(120)
        try:
            driver.find_element_by_id('video_swf_0')
        except NoSuchElementException:
            print('Такого элемента на сайте существует!')
            driver.close()
            time.sleep(120)
            works(driver)
        else:
            print('Такой элемент на сайте существует!')
            i = i + 1
            time.sleep(120)
            works_c(driver)
 
def works_c(driver):
    time.sleep(120)
    driver.implicitly_wait(5)
    driver.get(url_t)
    try:
        driver.find_element_by_id('video_swf_0')
    except NoSuchElementException:
        driver.close()
        time.sleep(120)
        works(driver)
    else:
        time.sleep(120)
        works_c(driver)
 
def main():
    url_t = input("Введи ссылку на трансляцию: ")
    n = int(input("Введи количество просмотров трансляции: "))
    driver = webdriver.Firefox(firefox_profile=getProfile())
    driver.implicitly_wait(5) # seconds
    driver.get(url_t)
    time.sleep(5)
    work(driver)
 
if __name__ == '__main__':
    main()


Добавить комментарий