Je suis en train d'essayer d'automatiser le téléchargement de sous-titres à partir d'un site web public. Les sous-titres sont accessibles une fois que vous cliquez sur le lien de téléchargement (Descargar en espagnol). En inspectant le code du site web, je peux voir que les liens sont des événements jQuery:
Il y a une fonction à l'intérieur de cet événement qui, je suppose, gère le téléchargement (je ne suis pas du tout familier avec JS):
function(a) {
if (ajaxflagon()) return !1;
var r = $(this).attr("rel");
if (r = r.split(","), 3 == r.length) var e = "/updated/" + r[0] + "/" + r[1] + "/" + r[2];
else var e = "/original/" + r[0] + "/" + r[1];
ga("send", "pageview", "/" + e, {
title: "Descargando " + $(this).attr("title")
}), $(this).attr("href", e), ajaxflagoff()
}
Jusqu'à présent, j'ai du code qui trouve les liens appropriés:
import urllib.request as urlRequest
from bs4 import BeautifulSoup
# Sous-titres pour une série télévisée spécifique
urlpage = 'https://www.tusubtitulo.com/season/4674/1'
# prétendre être un navigateur chrome 47 sur un ordinateur windows 10
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)"
}
req = urlRequest.Request(urlpage, headers=headers)
# ouvrir l'URL
url = urlRequest.urlopen(req)
# obtenir le code source
source_code = url.read()
# analyser le HTML en utilisant beautiful soup et stocker dans la variable 'soup'
soup = BeautifulSoup(source_code, 'html.parser')
results = []
for lang in soup.findAll("td", class_="language"):
# seulement intéressé par la langue espagnole
if "Español (España)" in str(lang):
for element in lang.parent.findAll("a", class_="bt_descarga"):
results.append(element)
Il manque la partie téléchargement :( Comment puis-je le faire?
Merci d'avance.