Пытаюсь сделать парсер который будет циклично и одновременно обрабатывать ссылки в разных вкладках браузера

Нужно что бы при вызове функции check_presence_icon (в моем случае пользователем телеграмм бота) программа открывала новую вкладку и парсила по порядку ссылки (указанные в таблице USR_Data.sqlite для этого пользователя). Так для каждого пользователя должна быть своя вкладка (ну и обрабатываться одновременно с другими вкладками, других пользователей).

Вот что натыкал для самого парсера на данный момент:

import asyncio
from bs4 import BeautifulSoup
from selenium import webdriver
import time
import pickle
from Login import login_name, login_site
import sqlite3

driver = None


def init_driver():
    global driver
    try:
        driver = webdriver.Chrome()
        driver.get(f'{login_site}')

        # получение cookies
        for cookie in pickle.load(open(f'Cookies/{login_name}_cookies', 'rb')):
            driver.add_cookie(cookie)

        time.sleep(3)
        driver.refresh()

    except Exception as e:
        print('КРАНТЫ ->   ', e)


async def check_presence_icon(u_id, bot):
    if driver is None:
        init_driver()

    with sqlite3.connect('USR_Data.sqlite') as db:
        cursor = db.cursor()
        cursor.execute("""select usr_url_list from users where usr_chatid = ?""", (u_id,))
        one_time_url_get = cursor.fetchone()
        url_list = one_time_url_get[0].split(',')

    driver.execute_script("window.open('')")
    driver.switch_to.window(driver.window_handles[-1])
    while True:
        for url in url_list:
            driver.get(url)
            soup = BeautifulSoup(driver.page_source, 'html.parser')
            Nickname = soup.find('h1', {'class': 'profile-name text-overflow'}).text
            presence_icon = soup.find('span', {'data-testid': 'presence-icon'})
            if Nickname is not None:

                if presence_icon is not None and 'Website' in presence_icon['title']:
                    bot.send_message(u_id, f'{Nickname} on Website')
                elif presence_icon is None:
                    bot.send_message(u_id, f'{Nickname} is Offline / Any game')
            await asyncio.sleep(5)

Ответы (0 шт):