Парсинг ютуб selenium + bs4 + multiprocessing PYTHON

Час добрый
Подскажите пожалуйста каким образом можно реализовать парсинг канала чтобы получить следующее:\

  1. Первые 40 видео на канале (если их меньше, то все что есть)
  2. Ссылки на видео, описание каждого видео и их дата выхода
  3. Описание профиля канала (в странице about)
    Все выходные данные нужно записать в csv. На данный момент есть общее понимание ситуации с примерным кодом, но не понимаю как лучше реализовать задачу с использованием нескольких процессов и сохранением всего в csv
from selenium import webdriver
from bs4 import BeautifulSoup
from multiprocessing import Pool


link_all_videos = []
link_all_videos_info = []


with open("links.txt", "r") as ins:
    for line in ins:
        link_all_videos.append(line)
print(f'[INFO] Всего аккаунтов для обработки: {len(link_all_videos)}')

for line_info in link_all_videos:
    line_info = line_info.split('\n')
    link_all_videos_info.append(line_info[0])


def get_videos_link(link_all_videos_info):

В функции get_video_link планирую подгрузить все селениумом и достать от туда код страницы. После пройтись по всем классам "style-scope ytd-grid-renderer", в которых лежат видео и достать от туда все href
Подскажите как можно достать только первые 40 видео со страницы? (если их меньше, то все что есть) и как потом сохранить информацию в csv чтобы получить следующий вид:\

  1. Столбец 1 - название канала
  2. Столбец 2 - описание канала
  3. Столбец 3 - ссылки в описании канала (если есть, если нет - пустота)
  4. Столбец 4 - ссылка на видео
  5. Столбец 5 - дата выхода видео
  6. Столбец 6 - описание видео

Ниже часть с включением мультипроцессов. В качестве ориентира они запускаются для каждой ссылки на канал.


def main():
    try:
        process_count = int(input('[INFO] Введите количество процессов: '))
        p = Pool(processes=process_count)
        p.map(get_videos_link, link_all_videos_info)
        main()
    except Exception as ex:
        raise ex

Пример выходной таблицы
https://docs.google.com/spreadsheets/d/1v-5MbfNSWoTjMd9iKUUUCH_Rdx1eXgqd0gJzPRqa6VI/edit#gid=0


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