私は何をしたいだけで、これまで私はJsoupユーチューブのタイトルを取得
title = doc.getElementById("eow-title").text();
を行うことによってJsoupでこれを達成しかし、今ユーチューブはそれがレイアウトだ変更していること、ユーチューブページのタイトルを取得していますタグがもう存在しない場合は、you tubehtml
コードを調べて、youtube playerタイトルを<script>
タグ内に保存していることを確認しました。問題は次の形式であり、
var ytplayer = ytplayer || {}; ytplayer.config = {"メッセージ":{"player_fallback":["コンテンツを再生するには を必要とします。Adobe Flash Playerを使用しています。HTML5。\ u003ca href = \" https://get.adobe .COM /のFlashPlayer/\ "\ u003eScarica L'ウルティマ versioneディのFlash Player \ u003c/A \ u003e \ u003ca のhref = \"/HTML5 \ "\ u003eUlteriori informazioni sull'aggiornamento国連 ブラウザ 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"、 "author": "BrawlBRSTMs3 X "、"タイトル ":" Big Blue - F-Zero Music 拡張」、 "innertube_api_version": "V1"、 "イベントID": "JY-2WfHPFIWxcpzcrKAF"、
たぶん私は手動でいくつかのregex
でタイトルを解析することができますか?私は何かを働かせるには十分に知らないregex
、助けてください。
P.S. 私はすでにdoc.getTitle();
を無駄に試していますが、私が得るのは完全なタイトルの代わりに "Youtube"です。 pleftが解決しよう
は、私は、コードを少し編集する必要がありましたが、これは私はそれがうまく行った方法です:
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();'は