2014-10-15 3 views
0

컬을 사용하여 웹 페이지의 제목을 얻으려면 어떻게해야합니까? http 또는 https url을 전달하고 해당 페이지의 제목을 얻고 싶습니다. 나는 curl_easy_perform(curl)가 html을 터미널에 인쇄하지만 html을 구문 분석 할 수있는 방법을 알 수 없다는 것을 알아 냈습니다.libcurl을 사용하여 웹 페이지의 제목을 얻는 방법

+0

받은 페이지를 메모리에 저장하고 페이지를 구문 분석하는 콜백을 설정해야합니다. –

답변

1

libcurl은 HTML 구문 분석 라이브러리가 아니며 전송에 초점을 맞 춥니 다. 직접 해석하거나 다른 라이브러리를 사용해야합니다.

귀하의 경우에는 <title> 요소를 찾아 해당 요소의 텍스트를 추출해야합니다.

여기에 붙여 넣기에는 너무 큽니다. 그러나 this example from libcurl은 C로 메모리에 콘텐츠를 저장하는 방법을 보여줍니다. curl_easy_setopt() 함수를 사용하여 모든 데이터를 수신하는 CURLOPT_WRITEFUNCTION 콜백을 등록합니다.

libcurl 예제는 "정확한 맞춤"동적 문자열을 사용합니다. 즉, 더 많은 데이터를 얻을 때마다 realloc()을 호출합니다. 이것은 일반적으로 최선의 방법은 아니지만 구현 및 이해가 간단하고 예제에서 의미가있을 수 있습니다.

+0

그래도 어떻게 libcurl을 가져 와서 변수 나 구조체에 html을 가져 와서 을 검색 할 수 있습니까? – <span class="text-secondary"> <small> <span></span> </small> </span> </p> </div> </div> </div> <div itemprop="comment" class="post-comment"> <div class="row"> <div class="col-lg-1"><span class="text-secondary">+0</span></div> <div class="col-lg-11"> <p class="commenttext">감사합니다. 나는 그 예를 가지고 일하도록했다. – <span class="text-secondary"> <small> <span></span> </small> </span> </p> </div> </div> </div> <div itemprop="comment" class="post-comment"> <div class="row"> <div class="col-lg-1"><span class="text-secondary">+0</span></div> <div class="col-lg-11"> <p class="commenttext"><title> 태그를 추출하는 웹 사이트의 또 다른 예는 다음과 같습니다. http://curl.haxx.se/libcurl/c/htmltitle.html – <span class="text-secondary"> <small> <span></span> </small> </span> </p> </div> </div> </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>libcurl이 HTML을 구문 분석하지 않습니다. 다른 라이브러리를 사용하거나 자신 만의 파서를 작성해야합니다.</p> <p>HTML을 깔끔하게 보입니다. 강의 말아 넘기기 페이지는 <a href="https://curl.haxx.se/libcurl/c/htmltidy.html" rel="nofollow">example</a>입니다.</p> <p>제목 만 원한다면 std :: string 검색 또는 정규 표현식을 사용하여 간단한 해결책을 시도해 볼 수 있습니다.</p> </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/26377039">출처</a> </span> </p> <p class="text-secondary col-lg-6"> <span class="float-right date"> <span>2014-10-15 07:39:56</span> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/444885/">dmitri</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-ajizhdxs-py.html" target="_blank" title="RFT- RFT에서 웹 페이지의 제목을 얻는 방법"> RFT- RFT에서 웹 페이지의 제목을 얻는 방법 </a> </li> <li> 2. <a href="http://ko.voidcc.com/question/p-tefsxjae-ny.html" target="_blank" title="httpxmlrequest를 사용하여 페이지의 제목을 얻는 방법"> httpxmlrequest를 사용하여 페이지의 제목을 얻는 방법 </a> </li> <li> 3. <a href="http://ko.voidcc.com/question/p-fyfmavcb-gg.html" target="_blank" title="jsf에서 현재 페이지의 제목을 얻는 방법"> jsf에서 현재 페이지의 제목을 얻는 방법 </a> </li> <li> 4. <a href="http://ko.voidcc.com/question/p-pisldopz-ch.html" target="_blank" title="웹 페이지의 제목을 반환합니다. UIWebView"> 웹 페이지의 제목을 반환합니다. UIWebView </a> </li> <li> 5. <a href="http://ko.voidcc.com/question/p-fbrbfzto-cn.html" target="_blank" title="regex를 사용하여 웹 페이지의 정보를 얻는 방법?"> regex를 사용하여 웹 페이지의 정보를 얻는 방법? </a> </li> <li> 6. <a href="http://ko.voidcc.com/question/p-rcjmblkp-ez.html" target="_blank" title="asp.net을 사용하여 웹 페이지의 헤더를 얻는 방법"> asp.net을 사용하여 웹 페이지의 헤더를 얻는 방법 </a> </li> <li> 7. <a href="http://ko.voidcc.com/question/p-nocedwnr-dp.html" target="_blank" title="웹 사이트 페이지의 제목을 잃는"> 웹 사이트 페이지의 제목을 잃는 </a> </li> <li> 8. <a href="http://ko.voidcc.com/question/p-qsgmkjfe-kt.html" target="_blank" title="QWebView를 사용하여 웹 페이지의 기본 제목을 변경하는 방법"> QWebView를 사용하여 웹 페이지의 기본 제목을 변경하는 방법 </a> </li> <li> 9. <a href="http://ko.voidcc.com/question/p-sjzehnsj-hh.html" target="_blank" title="페이지 제목을 얻는 방법?"> 페이지 제목을 얻는 방법? </a> </li> <li> 10. <a href="http://ko.voidcc.com/question/p-bngdupcg-b.html" target="_blank" title="웹 페이지의 책갈피 제목을 어떻게 대체합니까?"> 웹 페이지의 책갈피 제목을 어떻게 대체합니까? </a> </li> <li> 11. <a href="http://ko.voidcc.com/question/p-oibjpflw-ey.html" target="_blank" title="SharePoint 목록의 제목을 얻는 방법?"> SharePoint 목록의 제목을 얻는 방법? </a> </li> <li> 12. <a href="http://ko.voidcc.com/question/p-aqronvsb-tx.html" target="_blank" title="href에서 제목을 얻는 방법?"> href에서 제목을 얻는 방법? </a> </li> <li> 13. <a href="http://ko.voidcc.com/question/p-zufjygcr-mo.html" target="_blank" title="URL 제목을 얻는 방법?"> URL 제목을 얻는 방법? </a> </li> <li> 14. <a href="http://ko.voidcc.com/question/p-rxkwyucu-eo.html" target="_blank" title="Dailymotion 제목을 얻는 방법"> Dailymotion 제목을 얻는 방법 </a> </li> <li> 15. <a href="http://ko.voidcc.com/question/p-nfsxrzzp-qh.html" target="_blank" title="페이지 제목을 얻는 방법"> 페이지 제목을 얻는 방법 </a> </li> <li> 16. <a href="http://ko.voidcc.com/question/p-ossdncbi-rv.html" target="_blank" title="Clojurescript에서 웹 페이지의 제목을 변경하려면 어떻게해야합니까?"> Clojurescript에서 웹 페이지의 제목을 변경하려면 어떻게해야합니까? </a> </li> <li> 17. <a href="http://ko.voidcc.com/question/p-aaazqvrf-qo.html" target="_blank" title="테스트중인 페이지의 제목을 저장하는 방법"> 테스트중인 페이지의 제목을 저장하는 방법 </a> </li> <li> 18. <a href="http://ko.voidcc.com/question/p-ognmeaas-gw.html" target="_blank" title="모든 페이지 소스를 다운로드하지 않고 웹 페이지 제목을 얻는 방법"> 모든 페이지 소스를 다운로드하지 않고 웹 페이지 제목을 얻는 방법 </a> </li> <li> 19. <a href="http://ko.voidcc.com/question/p-swolmipx-hz.html" target="_blank" title="php Domdocument를 사용하여 링크의 제목을 얻는 방법"> php Domdocument를 사용하여 링크의 제목을 얻는 방법 </a> </li> <li> 20. <a href="http://ko.voidcc.com/question/p-xehiszco-tm.html" target="_blank" title="praw를 사용하여 스레드 제목을 얻는 방법?"> praw를 사용하여 스레드 제목을 얻는 방법? </a> </li> <li> 21. <a href="http://ko.voidcc.com/question/p-hoqzumrv-gm.html" target="_blank" title="웹 페이지의 제목을 자바 스크립트 변수로 표시"> 웹 페이지의 제목을 자바 스크립트 변수로 표시 </a> </li> <li> 22. <a href="http://ko.voidcc.com/question/p-gncyjhss-dh.html" target="_blank" title="파이썬에서 웹 페이지의 제목을 검색하는 것"> 파이썬에서 웹 페이지의 제목을 검색하는 것 </a> </li> <li> 23. <a href="http://ko.voidcc.com/question/p-gecofmlh-kz.html" target="_blank" title="웹 페이지의 책갈피 제목을 무시할 수 있습니까?"> 웹 페이지의 책갈피 제목을 무시할 수 있습니까? </a> </li> <li> 24. <a href="http://ko.voidcc.com/question/p-qmvakewu-et.html" target="_blank" title="symfony2로 페이지의 제목을 동적으로 변경하는 방법"> symfony2로 페이지의 제목을 동적으로 변경하는 방법 </a> </li> <li> 25. <a href="http://ko.voidcc.com/question/p-fcezbhbk-qo.html" target="_blank" title="내 페이지의 og : 제목을 동적으로 변경하는 방법"> 내 페이지의 og : 제목을 동적으로 변경하는 방법 </a> </li> <li> 26. <a href="http://ko.voidcc.com/question/p-fqtqbdyh-cx.html" target="_blank" title="루비에서 페이지 제목을 얻는 방법"> 루비에서 페이지 제목을 얻는 방법 </a> </li> <li> 27. <a href="http://ko.voidcc.com/question/p-pvidjaht-eg.html" target="_blank" title="URL에서 웹 페이지의 스크린 샷을 얻는 방법"> URL에서 웹 페이지의 스크린 샷을 얻는 방법 </a> </li> <li> 28. <a href="http://ko.voidcc.com/question/p-vtsiikhu-gk.html" target="_blank" title="PHP에서 웹 페이지의 링크를 얻는 방법"> PHP에서 웹 페이지의 링크를 얻는 방법 </a> </li> <li> 29. <a href="http://ko.voidcc.com/question/p-ylhrzlge-sx.html" target="_blank" title="Awesomium - 웹 페이지의 HTML 코드를 얻는 방법?"> Awesomium - 웹 페이지의 HTML 코드를 얻는 방법? </a> </li> <li> 30. <a href="http://ko.voidcc.com/question/p-oauyxlkd-es.html" target="_blank" title="이 웹 페이지의 URL을 얻는 방법"> 이 웹 페이지의 URL을 얻는 방법 </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-sfpwmtbd-yr.html" target="_blank" title="strip_unused.pb를 실행할 Tensorflow이없는이 (안드로이드) 시인에 대한 TensorFlow에 튜토리얼에 이어"> strip_unused.pb를 실행할 Tensorflow이없는이 (안드로이드) 시인에 대한 TensorFlow에 튜토리얼에 이어 </a> </li> <li class="side_article_list_item"> 2. <a href="http://ko.voidcc.com/question/p-vyaznkea-yu.html" target="_blank" title="Sketchware : 토큰 "."에 구문 오류가 있습니다.이 토큰 뒤에 슈퍼가 예상됩니다."> Sketchware : 토큰 "."에 구문 오류가 있습니다.이 토큰 뒤에 슈퍼가 예상됩니다. </a> </li> <li class="side_article_list_item"> 3. <a href="http://ko.voidcc.com/question/p-vexbymvu-yt.html" target="_blank" title="OWLAPI에서 가져 오기 추가"> OWLAPI에서 가져 오기 추가 </a> </li> <li class="side_article_list_item"> 4. <a href="http://ko.voidcc.com/question/p-fgyszgwt-xv.html" target="_blank" title="단축키를 통해 Python 스크립트를 빠르게 실행하십시오."> 단축키를 통해 Python 스크립트를 빠르게 실행하십시오. </a> </li> <li class="side_article_list_item"> 5. <a href="http://ko.voidcc.com/question/p-qpaoluol-xw.html" target="_blank" title="선택 입력 해 내림차순"> 선택 입력 해 내림차순 </a> </li> <li class="side_article_list_item"> 6. <a href="http://ko.voidcc.com/question/p-nvtkcqhi-yc.html" target="_blank" title="우리집의 모든 조명에 Arduino/Raspberry가 필요합니까?"> 우리집의 모든 조명에 Arduino/Raspberry가 필요합니까? </a> </li> <li class="side_article_list_item"> 7. <a href="http://ko.voidcc.com/question/p-wchkggss-ya.html" target="_blank" title="우아한 임의 0의 목록을 작성하는 방법 물론 <code>model.count(0)</code>의 1"> 우아한 임의 0의 목록을 작성하는 방법 물론 <code>model.count(0)</code>의 1 </a> </li> <li class="side_article_list_item"> 8. <a href="http://ko.voidcc.com/question/p-alqblajb-xy.html" target="_blank" title="SQL 접합 테이블 이름 : 다 대다 2 사용자를 연결 참조 테이블 "은 다음을</p> <pre><code>CREATE TABLE user ( user_id INTEGER PRIMARY KEY NOT NULL, nick_name TEXT NOT NULL UNIQUE ) </code></pre> <p>지금 내가 가진 다음"사용자 "테이블을 고려 컨벤션"> SQL 접합 테이블 이름 : 다 대다 2 사용자를 연결 참조 테이블 "은 다음을</p> <pre><code>CREATE TABLE user ( user_id INTEGER PRIMARY KEY NOT NULL, nick_name TEXT NOT NULL UNIQUE ) </code></pre> <p>지금 내가 가진 다음"사용자 "테이블을 고려 컨벤션 </a> </li> <li class="side_article_list_item"> 9. <a href="http://ko.voidcc.com/question/p-memmzulf-xn.html" target="_blank" title="Google 애널리틱스 용 Google Play 서비스 추가"> Google 애널리틱스 용 Google Play 서비스 추가 </a> </li> <li class="side_article_list_item"> 10. <a href="http://ko.voidcc.com/question/p-adbumwus-xo.html" target="_blank" title="Entity Framework의 IEntityWrapper 인터페이스 뒤에있는 디자인 패턴은 무엇입니까?"> Entity Framework의 IEntityWrapper 인터페이스 뒤에있는 디자인 패턴은 무엇입니까? </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-ajizhdxs-py.html" target="_blank" title="RFT- RFT에서 웹 페이지의 제목을 얻는 방법"> RFT- RFT에서 웹 페이지의 제목을 얻는 방법 </a> </li> <li class="side_article_list_item"> 2. <a href="http://ko.voidcc.com/question/p-tefsxjae-ny.html" target="_blank" title="httpxmlrequest를 사용하여 페이지의 제목을 얻는 방법"> httpxmlrequest를 사용하여 페이지의 제목을 얻는 방법 </a> </li> <li class="side_article_list_item"> 3. <a href="http://ko.voidcc.com/question/p-fyfmavcb-gg.html" target="_blank" title="jsf에서 현재 페이지의 제목을 얻는 방법"> jsf에서 현재 페이지의 제목을 얻는 방법 </a> </li> <li class="side_article_list_item"> 4. <a href="http://ko.voidcc.com/question/p-pisldopz-ch.html" target="_blank" title="웹 페이지의 제목을 반환합니다. UIWebView"> 웹 페이지의 제목을 반환합니다. UIWebView </a> </li> <li class="side_article_list_item"> 5. <a href="http://ko.voidcc.com/question/p-fbrbfzto-cn.html" target="_blank" title="regex를 사용하여 웹 페이지의 정보를 얻는 방법?"> regex를 사용하여 웹 페이지의 정보를 얻는 방법? </a> </li> <li class="side_article_list_item"> 6. <a href="http://ko.voidcc.com/question/p-rcjmblkp-ez.html" target="_blank" title="asp.net을 사용하여 웹 페이지의 헤더를 얻는 방법"> asp.net을 사용하여 웹 페이지의 헤더를 얻는 방법 </a> </li> <li class="side_article_list_item"> 7. <a href="http://ko.voidcc.com/question/p-nocedwnr-dp.html" target="_blank" title="웹 사이트 페이지의 제목을 잃는"> 웹 사이트 페이지의 제목을 잃는 </a> </li> <li class="side_article_list_item"> 8. <a href="http://ko.voidcc.com/question/p-qsgmkjfe-kt.html" target="_blank" title="QWebView를 사용하여 웹 페이지의 기본 제목을 변경하는 방법"> QWebView를 사용하여 웹 페이지의 기본 제목을 변경하는 방법 </a> </li> <li class="side_article_list_item"> 9. <a href="http://ko.voidcc.com/question/p-sjzehnsj-hh.html" target="_blank" title="페이지 제목을 얻는 방법?"> 페이지 제목을 얻는 방법? </a> </li> <li class="side_article_list_item"> 10. <a href="http://ko.voidcc.com/question/p-bngdupcg-b.html" target="_blank" title="웹 페이지의 책갈피 제목을 어떻게 대체합니까?"> 웹 페이지의 책갈피 제목을 어떻게 대체합니까? </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>