2017-09-11 2 views
1

내가 뭘 원하는 단순히 지금까지 내가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 난 울티마 versione 디 플래시 플레이어 \ 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. 나는 벌써 doc.getTitle();을 쓸모 없게 시도했다. 나는 전체 제목 대신에 "유튜브"를 얻는다. 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); 
+0

FYI :'doc.getTitle();'은 태그 사이의 텍스트를 가져옵니다. 분명히 "YouTube"입니다. @pleft의 솔루션은 상당히 견고합니다! – <span class="text-secondary"> <small> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/3977134/">r3dst0rm</a></span> <span></span> </small> </span> </p> </div> </div> </div> </div> </div> </article> </div> <div class="answer-title"> <span class="text-logo margin-top-sm">A</span> <h2 class="title h4">답변</h2> </div> <div class="item-description text-md markdown-body margin-bottom-40 voidso"> <article class="board-top-1 padding-top-10"> <div class="post-col vote-info"> <span class="count">1<i class="fa fa-thumbs-up"></i></span> <i class="fa fa-check fa-2x"></i> </div> <div class="post-offset"> <div class="answer fmt"> <p>엡 <code class="prettyprint-override">regex</code>이 트릭을 할 것입니다. 다음과 같은 시도 할 수 있습니다 :</p> <pre><code class="prettyprint-override">Element script = doc.select("script").first(); //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()); while(m.find()) { System.out.println(m.group()); } </code></pre> </div> <div class="post-info"> <div class="post-meta row"> <p class="text-secondary col-lg-6"> <span class="source"> <a rel="noopener" target="_blank" href="https://stackoverflow.com/q/46158246">출처</a> </span> </p> <p class="text-secondary col-lg-6"> <span class="float-right date"> <span>2017-09-11 14:33:46</span> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/3635454/">pleft</a></span> </p> <p class="col-12"></p> <p class="col-12"></p></div> </div> </div> </article> <div> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6208739752673518" data-ad-slot="4319274062" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <article class="board-top-1 padding-top-10"> <div class="post-col vote-info"> <span class="count">0<i class="fa fa-thumbs-up"></i></span> </div> <div class="post-offset"> <div class="answer fmt"> <p>당신은 수있는 소스에서 <code class="prettyprint-override">player</code> 사업부를 읽어보세요, 그리고 그 <code class="prettyprint-override">div</code> 내부의 <code class="prettyprint-override">script</code>에서 <code class="prettyprint-override">title</code>을 찾을 수 있습니다. 다음은 <code class="prettyprint-override">JSOUP</code>을 사용한 작업 샘플입니다. 그러면 "제목": "실제 제목"이 인쇄됩니다. 필요에 따라 업데이트하십시오.</p> <pre><code class="prettyprint-override">Document doc = Jsoup.connect("https://www.youtube.com/watch?v=lhs_chrfXfE").timeout(10000).get(); Elements player = doc.select("div#player"); for(Element e:player){ Elements scriptContent = e.getElementsByTag("script"); for (Element paragraph : scriptContent) { System.out.println(paragraph.attr("script")); for (DataNode node : paragraph.dataNodes()) { Pattern pattern = Pattern.compile("\"title\":\"(.+?)\""); Matcher matcher = pattern.matcher(node.getWholeData()); if(matcher.find()) { **//***this is your title***** System.out.println(matcher.group(0)); } } } } } </code></pre> </div> <div class="post-info"> <div class="post-meta row"> <p class="text-secondary col-lg-6"> <span class="source"> <a rel="noopener" target="_blank" href="https://stackoverflow.com/q/46159516">출처</a> </span> </p> <p class="text-secondary col-lg-6"> <span class="float-right date"> <span>2017-09-11 15:43:25</span> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/1425331/">Jimmy</a></span> </p> <p class="col-12"></p> <p class="col-12"></p></div> </div> </div> </article> </div> <div class="clearfix"> </div> <div class="relative-box"> <div class="relative">관련 문제</div> <ul class="relative_list"> <li> 1. <a href="http://ko.voidcc.com/question/p-kvdkberd-re.html" target="_blank" title="유튜브 API를 검색 검색 오류"> 유튜브 API를 검색 검색 오류 </a> </li> <li> 2. <a href="http://ko.voidcc.com/question/p-ebdbtkla-zc.html" target="_blank" title="jsoup 핵심어 검색 요소"> jsoup 핵심어 검색 요소 </a> </li> <li> 3. <a href="http://ko.voidcc.com/question/p-vpqretgf-nd.html" target="_blank" title="유튜브 API로 광고 검색"> 유튜브 API로 광고 검색 </a> </li> <li> 4. <a href="http://ko.voidcc.com/question/p-awuurieg-xd.html" target="_blank" title="HtmlAgilityPack UWP에서 유튜브 검색 #"> HtmlAgilityPack UWP에서 유튜브 검색 # </a> </li> <li> 5. <a href="http://ko.voidcc.com/question/p-gchogbhx-pp.html" target="_blank" title="유튜브 검색 RSS 피드"> 유튜브 검색 RSS 피드 </a> </li> <li> 6. <a href="http://ko.voidcc.com/question/p-mbvwpmpl-yp.html" target="_blank" title="JSoup Select Tag 재귀 검색"> JSoup Select Tag 재귀 검색 </a> </li> <li> 7. <a href="http://ko.voidcc.com/question/p-vjthcubh-oa.html" target="_blank" title="JSoup 검색 URL이 작동하지 않습니다."> JSoup 검색 URL이 작동하지 않습니다. </a> </li> <li> 8. <a href="http://ko.voidcc.com/question/p-rllgwjwh-km.html" target="_blank" title="유튜브 API 자동 완성 검색"> 유튜브 API 자동 완성 검색 </a> </li> <li> 9. <a href="http://ko.voidcc.com/question/p-wzticgeg-mc.html" target="_blank" title="Jsoup"> Jsoup </a> </li> <li> 10. <a href="http://ko.voidcc.com/question/p-mljmduax-pg.html" target="_blank" title="Jsoup - 하나의 배열에 모든 링크와 제목을 어떻게 얻을 수 있습니까?"> Jsoup - 하나의 배열에 모든 링크와 제목을 어떻게 얻을 수 있습니까? </a> </li> <li> 11. <a href="http://ko.voidcc.com/question/p-erdkrlpm-ky.html" target="_blank" title="위젯의 제목을 ELGG에서 검색 1.8"> 위젯의 제목을 ELGG에서 검색 1.8 </a> </li> <li> 12. <a href="http://ko.voidcc.com/question/p-abvanbhs-rq.html" target="_blank" title="유튜브 API v3의 검색 내가이 URL을 사용하여 V3 API에 대한 검색 할 노력하고있어 유튜브 사이트"> 유튜브 API v3의 검색 내가이 URL을 사용하여 V3 API에 대한 검색 할 노력하고있어 유튜브 사이트 </a> </li> <li> 13. <a href="http://ko.voidcc.com/question/p-bvqdivzz-gm.html" target="_blank" title="JSoup : 특정 속성을 포함하지 않는 요소 검색"> JSoup : 특정 속성을 포함하지 않는 요소 검색 </a> </li> <li> 14. <a href="http://ko.voidcc.com/question/p-nagvtree-qw.html" target="_blank" title="Jsoup 중첩 테이블은 검색 페이지 결과 테이블"> Jsoup 중첩 테이블은 검색 페이지 결과 테이블 </a> </li> <li> 15. <a href="http://ko.voidcc.com/question/p-rcylsoau-sd.html" target="_blank" title="Google 검색 "Next Page"잡기 - Jsoup Webcrawler"> Google 검색 "Next Page"잡기 - Jsoup Webcrawler </a> </li> <li> 16. <a href="http://ko.voidcc.com/question/p-sckeffsq-op.html" target="_blank" title="JSOUP"> JSOUP </a> </li> <li> 17. <a href="http://ko.voidcc.com/question/p-poxhhpcv-yx.html" target="_blank" title="Jsoup"> Jsoup </a> </li> <li> 18. <a href="http://ko.voidcc.com/question/p-rdzpxxxa-px.html" target="_blank" title="Jsoup"> Jsoup </a> </li> <li> 19. <a href="http://ko.voidcc.com/question/p-sjxhttyl-rv.html" target="_blank" title="jsoup"> jsoup </a> </li> <li> 20. <a href="http://ko.voidcc.com/question/p-vowroifl-pn.html" target="_blank" title="JSoup"> JSoup </a> </li> <li> 21. <a href="http://ko.voidcc.com/question/p-pwavogrs-sy.html" target="_blank" title="유튜브 검색 오류 : GoogleJsonResponseException : 403 Forbidden"> 유튜브 검색 오류 : GoogleJsonResponseException : 403 Forbidden </a> </li> <li> 22. <a href="http://ko.voidcc.com/question/p-njpjimpr-wv.html" target="_blank" title="유튜브 API V3, 검색, publishedAfter, invalidSearchFilter"> 유튜브 API V3, 검색, publishedAfter, invalidSearchFilter </a> </li> <li> 23. <a href="http://ko.voidcc.com/question/p-myztmmeg-ny.html" target="_blank" title="주어진 검색 키워드에서 유튜브 동영상을 얻으십시오"> 주어진 검색 키워드에서 유튜브 동영상을 얻으십시오 </a> </li> <li> 24. <a href="http://ko.voidcc.com/question/p-bpkgejuh-vm.html" target="_blank" title="mailinator와 함께 jsoup 사용"> mailinator와 함께 jsoup 사용 </a> </li> <li> 25. <a href="http://ko.voidcc.com/question/p-xvawgcxz-ds.html" target="_blank" title="유튜브"> 유튜브 </a> </li> <li> 26. <a href="http://ko.voidcc.com/question/p-zemfprvm-we.html" target="_blank" title="JSoup 요소와 JSoup 노드의 차이점"> JSoup 요소와 JSoup 노드의 차이점 </a> </li> <li> 27. <a href="http://ko.voidcc.com/question/p-vlvewfey-co.html" target="_blank" title="유튜브 API 제목은"> 유튜브 API 제목은 </a> </li> <li> 28. <a href="http://ko.voidcc.com/question/p-bssxdoaj-dw.html" target="_blank" title="유튜브 API 비디오 처리 유튜브"> 유튜브 API 비디오 처리 유튜브 </a> </li> <li> 29. <a href="http://ko.voidcc.com/question/p-vujhohnh-hs.html" target="_blank" title="C#을 사용하여 LDAP에서 제목을 검색 하시겠습니까?"> C#을 사용하여 LDAP에서 제목을 검색 하시겠습니까? </a> </li> <li> 30. <a href="http://ko.voidcc.com/question/p-ryaulrge-np.html" target="_blank" title="검색 결과에 잘못된 제목을 표시하는 검색 엔진 (Google)"> 검색 결과에 잘못된 제목을 표시하는 검색 엔진 (Google) </a> </li> </ul> </div> <div> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-6208739752673518" data-ad-slot="3534119089"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="padding-top-10"></div> </div> </div> <script type="text/javascript" src="http://img2.voidcc.com/voidso/script/side.js?t=1652515422614"></script> <script type="text/javascript" src="http://img2.voidcc.com/voidso/plugin/highlight/highlight.pack.js"></script> <link href="http://img2.voidcc.com/voidso/plugin/highlight/styles/docco.css" media="screen" rel="stylesheet" type="text/css" /> <script type="text/javascript"> $('pre').each(function(i, e) { hljs.highlightBlock(e, "<span class='indent'> </span>", false) }); </script> <div class="col-lg-3 col-md-4 col-sm-5"> <div id="rightTop"> <div class="row"> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- VOIDCC问答侧边栏广告 --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6208739752673518" data-ad-slot="3862022848" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="row sidebar panel panel-default"> <div class="panel-heading font-bold"> 최근 질문 </div> <div class="m-b-sm m-t-sm clearfix"> <ul class="side_article_list"> <li class="side_article_list_item"> 1. <a href="http://ko.voidcc.com/question/p-dkkonqhc-xx.html" target="_blank" title="TFS API 또는 TFS 웹 UI를 통해 여러 프로젝트에 대한 사용자 권한 부여"> TFS API 또는 TFS 웹 UI를 통해 여러 프로젝트에 대한 사용자 권한 부여 </a> </li> <li class="side_article_list_item"> 2. <a href="http://ko.voidcc.com/question/p-grbmuoxk-xn.html" target="_blank" title="각도 클립을 사용하는 대신 webpack을 직접 사용하면 어떤 이점이 있습니까"> 각도 클립을 사용하는 대신 webpack을 직접 사용하면 어떤 이점이 있습니까 </a> </li> <li class="side_article_list_item"> 3. <a href="http://ko.voidcc.com/question/p-mmnocrmc-xo.html" target="_blank" title="다음을 누를 때 다음 상태 비 저장 입력에 초점을 맞추는 방법"> 다음을 누를 때 다음 상태 비 저장 입력에 초점을 맞추는 방법 </a> </li> <li class="side_article_list_item"> 4. <a href="http://ko.voidcc.com/question/p-gmashdqy-xs.html" target="_blank" title="AndroidViewModel에서 LiveData 초기화"> AndroidViewModel에서 LiveData 초기화 </a> </li> <li class="side_article_list_item"> 5. <a href="http://ko.voidcc.com/question/p-rsoejsdf-xu.html" target="_blank" title="Uikit 센터 탐색"> Uikit 센터 탐색 </a> </li> <li class="side_article_list_item"> 6. <a href="http://ko.voidcc.com/question/p-skbsehoj-xq.html" target="_blank" title="인덱스 값이 문자열 인 슬라이스 목록은 무엇입니까?"> 인덱스 값이 문자열 인 슬라이스 목록은 무엇입니까? </a> </li> <li class="side_article_list_item"> 7. <a href="http://ko.voidcc.com/question/p-fxmdclxo-xr.html" target="_blank" title="laravel의 PagesController는 무엇입니까"> laravel의 PagesController는 무엇입니까 </a> </li> <li class="side_article_list_item"> 8. <a href="http://ko.voidcc.com/question/p-oqinewbj-xk.html" target="_blank" title="전자 렌더러 프로세스에서 sqlite를 사용할 수 없습니다 : "정의되지 않은 '_handle'속성을 읽을 수 없습니다."> 전자 렌더러 프로세스에서 sqlite를 사용할 수 없습니다 : "정의되지 않은 '_handle'속성을 읽을 수 없습니다. </a> </li> <li class="side_article_list_item"> 9. <a href="http://ko.voidcc.com/question/p-ksrzchze-xk.html" target="_blank" title="단어 [카운트] 무엇을 = 스타는"> 단어 [카운트] 무엇을 = 스타는 </a> </li> <li class="side_article_list_item"> 10. <a href="http://ko.voidcc.com/question/p-mphuwbyj-xd.html" target="_blank" title="Google 클라우드 기능 GitHub의 자동 전개는 말한다 : 서비스 시간 제한"> Google 클라우드 기능 GitHub의 자동 전개는 말한다 : 서비스 시간 제한 </a> </li> </ul> </div> </div> </div> <p class="article-nav-bar"></p> <div class="row sidebar article-nav"> <div class="row box_white visible-sm visible-md visible-lg margin-zero"> <div class="top"> <h3 class="title"><i class="glyphicon glyphicon-th-list"></i> 관련 문제</h3> </div> <div class="article-relative-content"> <ul class="side_article_list"> <li class="side_article_list_item"> 1. <a href="http://ko.voidcc.com/question/p-kvdkberd-re.html" target="_blank" title="유튜브 API를 검색 검색 오류"> 유튜브 API를 검색 검색 오류 </a> </li> <li class="side_article_list_item"> 2. <a href="http://ko.voidcc.com/question/p-ebdbtkla-zc.html" target="_blank" title="jsoup 핵심어 검색 요소"> jsoup 핵심어 검색 요소 </a> </li> <li class="side_article_list_item"> 3. <a href="http://ko.voidcc.com/question/p-vpqretgf-nd.html" target="_blank" title="유튜브 API로 광고 검색"> 유튜브 API로 광고 검색 </a> </li> <li class="side_article_list_item"> 4. <a href="http://ko.voidcc.com/question/p-awuurieg-xd.html" target="_blank" title="HtmlAgilityPack UWP에서 유튜브 검색 #"> HtmlAgilityPack UWP에서 유튜브 검색 # </a> </li> <li class="side_article_list_item"> 5. <a href="http://ko.voidcc.com/question/p-gchogbhx-pp.html" target="_blank" title="유튜브 검색 RSS 피드"> 유튜브 검색 RSS 피드 </a> </li> <li class="side_article_list_item"> 6. <a href="http://ko.voidcc.com/question/p-mbvwpmpl-yp.html" target="_blank" title="JSoup Select Tag 재귀 검색"> JSoup Select Tag 재귀 검색 </a> </li> <li class="side_article_list_item"> 7. <a href="http://ko.voidcc.com/question/p-vjthcubh-oa.html" target="_blank" title="JSoup 검색 URL이 작동하지 않습니다."> JSoup 검색 URL이 작동하지 않습니다. </a> </li> <li class="side_article_list_item"> 8. <a href="http://ko.voidcc.com/question/p-rllgwjwh-km.html" target="_blank" title="유튜브 API 자동 완성 검색"> 유튜브 API 자동 완성 검색 </a> </li> <li class="side_article_list_item"> 9. <a href="http://ko.voidcc.com/question/p-wzticgeg-mc.html" target="_blank" title="Jsoup"> Jsoup </a> </li> <li class="side_article_list_item"> 10. <a href="http://ko.voidcc.com/question/p-mljmduax-pg.html" target="_blank" title="Jsoup - 하나의 배열에 모든 링크와 제목을 어떻게 얻을 수 있습니까?"> Jsoup - 하나의 배열에 모든 링크와 제목을 어떻게 얻을 수 있습니까? </a> </li> </ul> </div> </div> </div> </div> </div> </div> </div><!-- wrap end--> <!-- footer --> <footer id="footer"> <div class="bg-simple lt"> <div class="container"> <div class="row padder-v m-t"> <div class="col-xs-8"> <ul class="list-inline"> <li><a href="http://ko.voidcc.com/contact">문의하기</a></li> <li>© 2020 KO.VOIDCC.COM</li> <li><a rel="nofollow" href="https://beian.miit.gov.cn/" target="_blank">沪ICP备13005482号-13</a></li> <li><script type="text/javascript" src="https://s9.cnzz.com/z_stat.php?id=1280098168&web_id=1280098168"></script></li> <li><a href="http://cn.voidcc.com/" target="_blank" title="程序问答园区">简体中文</a></li> <li><a href="http://hk.voidcc.com/" target="_blank" title="程序問答園區">繁體中文</a></li> <li><a href="http://ru.voidcc.com/" target="_blank" title="поле вопросов и ответов">Русский</a></li> <li><a href="http://de.voidcc.com/" target="_blank" title="Frage - und - antwort - Park">Deutsch</a></li> <li><a href="http://es.voidcc.com/" target="_blank" title="Preguntas y respuestas">Español</a></li> <li><a href="http://hi.voidcc.com/" target="_blank" title="कार्यक्रम प्रश्न और उत्तर पार्क">हिन्दी</a></li> <li><a href="http://it.voidcc.com/" target="_blank" title="IL Programma di chiedere Park">Italiano</a></li> <li><a href="http://ja.voidcc.com/" target="_blank" title="プログラム問答園区">日本語</a></li> <li><a href="http://ko.voidcc.com/" target="_blank" title="프로그램 문답 단지">한국어</a></li> <li><a href="http://pl.voidcc.com/" target="_blank" title="program o park">Polski</a></li> <li><a href="http://tr.voidcc.com/" target="_blank" title="Program soru ve cevap parkı">Türkçe</a></li> <li><a href="http://vi.voidcc.com/" target="_blank" title="Đáp ứng viên">Tiếng Việt</a></li> <li><a href="http://fr.voidcc.com/" target="_blank" title="Programme interrogation Park">Française</a></li> </ul> </div> </div> </div> </div> </div> </footer> <!-- / footer --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-77509369-5"></script> <script> window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push(arguments); } gtag('js', new Date()); gtag('config', 'UA-77509369-5'); </script> <script> var _hmt = _hmt || []; (function () { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?67d4731349f0b00136755b80364ce381"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> </body> </html>