48 lines
1.5 KiB
Python
48 lines
1.5 KiB
Python
import os
|
|
from bs4 import BeautifulSoup
|
|
|
|
# Chemin du fichier HTML
|
|
html_file = "/home/cipherbliss/Nextcloud/inbox/Vidéos locales - peertube.openstreetmap.fr.html"
|
|
|
|
# Ouvrir le fichier HTML
|
|
with open(html_file, "r") as f:
|
|
html_content = f.read()
|
|
|
|
# Parser le HTML avec BeautifulSoup
|
|
soup = BeautifulSoup(html_content, "html.parser")
|
|
|
|
# Récupérer les blocs de vidéos
|
|
video_wrappers = soup.find_all("div", class_="video-wrapper")
|
|
|
|
# Récupérer les informations des vidéos
|
|
videos = []
|
|
for video_wrapper in video_wrappers:
|
|
# Récupérer l'URL de la vidéo
|
|
video_url = video_wrapper.find("a", class_="video-thumbnail")["href"]
|
|
|
|
# Récupérer le titre de la vidéo
|
|
video_title = video_wrapper.find("span", class_="video-miniature-name").text.strip()
|
|
|
|
# Ajouter les informations de la vidéo à la liste
|
|
videos.append({"url": video_url, "title": video_title})
|
|
|
|
# Écrire les informations des vidéos dans un fichier JSON
|
|
import json
|
|
with open("videos.json", "w") as f:
|
|
json.dump(videos, f, indent=4)
|
|
|
|
# Écrire les informations des vidéos dans un fichier CSV
|
|
import csv
|
|
with open("videos.csv", "w", newline="") as f:
|
|
writer = csv.writer(f, delimiter=";")
|
|
writer.writerow(["URL", "Titre"])
|
|
for video in videos:
|
|
writer.writerow([video["url"], video["title"]])
|
|
|
|
# Écrire les informations des vidéos dans un fichier MediaWiki
|
|
with open("conférences_sotm_pertube.txt", "w") as f:
|
|
f.write("| URL | Titre |\n")
|
|
f.write("| --- | --- |\n")
|
|
for video in videos:
|
|
f.write(f"| {video['url']} | {video['title']} |\n")
|