Ce que je veux faire est de récupérer simplement le titre d'un youtube page jusqu'à présent, j'accompli cela avec Jsoup en faisantJsoup récupérer youtube titre
title = doc.getElementById("eow-title").text();
Mais youtube a changé de mise en page et que tag n'existe plus, j'ai inspecté un youtubehtml
code et a découvert qu'ils stockent maintenant le youtube player titre à l'intérieur d'un tag <script>
, le problème est que c'est sous la forme suivante et je ne sais pas comment récupérer cela:
var ytplayer = ytplayer || {}; ytplayer.config = {"messages": {"player_fallback": ["Pour la résolution de la vidéo necessario Adobe Flash Player d'un navigateur HTML5. \ u003ca href = \" https: //get.adobe .com/flashplayer/\ "\ u003eScarica l'ultima versione di flash player \ u003c/a \ u003e \ u003Ca href = \"/html5 \ "\ u003eUlteriori informazioni sull'aggiornamento un navigateur un HTML5 \ u003c/a \ u003e "]}", args ": {" vm ":" CAIQABgE "," iv_invideo_url ":" https://www.youtube.com/annotations_invideo?cap_hist=1\u0026video_id=wckFsik_vU8\u0026client=1\u0026ei= JY-2WfHPFIWxcpzcrKAF "," watch_xlb ":" https://s.ytimg.com/yts/xlbbin/watch-strings-it_IT-vflA6zD4C.xlb "," pltype ":" contentugc "," auteur ":" BrawlBRSTMs3 X ", " title ":" Big Blue - Musique F-Zero prolongée », "innertube_api_version": "v1", "eventid": "JY-2WfHPFIWxcpzcrKAF",
Peut-être que je pourrais analyser manuellement le titre avec une regex
? Je ne sais pas assez sur regex
pour résoudre quelque chose, s'il vous plaît aider.
P.S. J'ai déjà essayé doc.getTitle();
en vain, tout ce que je reçois est "Youtube" au lieu du titre complet.
Résolu par pleft, je devais modifier le code un peu, mais voilà comment je l'ai fait travailler:
doc = Jsoup.connect(getLink()).get();
Elements script = doc.select("script"); //to get the script content
Pattern p = Pattern.compile("\"title\":\"(.+?)\""); // Regex for the getting the string: "title":"blah blah blah"
Matcher m = p.matcher(script.html());
m.find();
title = m.group().substring(8);
FYI: 'doc.getTitle();' récupère le texte entre