Files
polyphemus/examples/scrape.py

52 lines
1.5 KiB
Python

# -*- coding: UTF-8 -*-
"""Scrape all video and comment data from a specified Odysee channel
"""
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
import csv
from pathlib import Path
import os
import pandas as pd
from polyphemus.base import OdyseeChannel
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
CHANNEL_NAME = 'PatriotFront'
OUTPUT_DIR = Path('.').resolve().parents[1]/'data'
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
if __name__ == '__main__':
odysee_channel = OdyseeChannel(channel_name = CHANNEL_NAME)
video_list, comment_list = odysee_channel.get_all_videos_and_comments()
channel_df = pd.DataFrame([odysee_channel.info])
video_df = pd.DataFrame([v.info for v in video_list])
comment_df = pd.DataFrame([c.info for c in comment_list])
output_subdir = Path(OUTPUT_DIR, CHANNEL_NAME)
os.makedirs(output_subdir, exist_ok = True)
channel_df.to_csv(
path_or_buf = Path(output_subdir, f'{CHANNEL_NAME}_channel.csv'),
index = False,
quoting = csv.QUOTE_NONNUMERIC )
video_df.to_csv(
path_or_buf = Path(output_subdir, f'{CHANNEL_NAME}_videos.csv'),
index = False,
quoting = csv.QUOTE_NONNUMERIC )
comment_df.to_csv(
path_or_buf = Path(output_subdir, f'{CHANNEL_NAME}_comments.csv'),
index = False,
quoting = csv.QUOTE_NONNUMERIC )
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#