scripts/osm-conferences-scrap/main.py

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")