2012-10-26 8 views
9
var http = require('http'); 
var urlOpts = {host: 'www.nodejs.org', path: '/', port: '80'}; 
http.get(urlOpts, function (response) { 
response.on('data', function (chunk) { 
var str=chunk.toString(); 
var re = new RegExp("(<\s*title[^>]*>(.+?)<\s*/\s*title)\>", "g") 
console.log(str.match(re)); 
}); 

}); 

AusgabeAbrufen des Seitentitels von einer geschabt Webseite

[email protected] ~ $ node app.js [ 'node.js' ] null null

Ich muß nur den Titel bekommen.

Antwort

7

würde ich RegEx.exec statt String.match vorschlagen, mit. Sie können auch den regulären Ausdruck mit der Literalsyntax definieren, und nur ein einziges Mal: ​​

var http = require('http'); 
var urlOpts = {host: 'www.nodejs.org', path: '/', port: '80'}; 
var re = /(<\s*title[^>]*>(.+?)<\s*\/\s*title)>/gi; 
http.get(urlOpts, function (response) { 
    response.on('data', function (chunk) { 
     var str=chunk.toString(); 
     var match = re.exec(str); 
     if (match && match[2]) { 
      console.log(match[2]); 
     } 
    });  
}); 

Der Code geht auch davon aus, dass die title in einem Klumpen vollständig sein wird und nicht zwischen zwei Stücke geteilt. Es wäre wahrscheinlich am besten, eine Ansammlung von Chunks zu behalten, falls die title zwischen Chunks aufgeteilt ist. Sie können auch aufhören, nach dem title zu suchen, sobald Sie es gefunden haben.

+0

@argonius hat einen guten Punkt in seinem Beispiel, dass Sie vermutlich zusätzlich zu 'g' auch das 'i'-Flag verwenden sollten, damit der reguläre Ausdruck die Groß-/Kleinschreibung nicht beachtet (da das Gehäuse des' ' Tags isn' ist). t garantiert kleingeschrieben, besonders wenn das Dokument nicht XHTML ist). – <span class="text-secondary"> <small> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/2688/">bdukes</a></span> <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">funktioniert nicht mit SPA-Webseiten, wenn der Titel mit JavaScript festgelegt wurde. Sie sollten Headless Browser wie Google Chrome verwenden – <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">2<i class="fa fa-thumbs-up"></i></span> </div> <div class="post-offset"> <div class="answer fmt"> <p>Versuchen Sie folgendes:</p> <pre><code class="prettyprint-override">var re = new RegExp("<title>(.*?)</title>", "i"); console.log(str.match(re)[1]); </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/13088064">Quelle</a> </span> </p> <p class="text-secondary col-lg-6"> <span class="float-right date"> <span>2012-10-26 13:40:43</span> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/915320/">gradosevic</a></span> </p> <p class="col-12"></p> <p class="col-12"></p></div> </div> <!-- comments --> <div class="comments"> <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">'E: \ ╨а╨░╨▒╨╛╤╨▒╨╛╤╨╕╨╣ ╤Б╤В╨╛╨╗ \ dev \ app.js: 7 console.log (str.match (re) [1 ]); ^ TypeError: Kann die Eigenschaft '1' von null bei IncomingMessage nicht lesen. <anonymous> (E: \ ╨а╨░╨▒╨╛╤╨▒╨╛╤╨╕╨╣ ╤Б╤В╨╛╨╗ \ dev \ app.js: 7: 26) bei IncomingMessage.EventEmitter.emit (events.js: 93:17) bei IncomingMessage._emitData (http: js: 359: 10) bei HTTPParser.parserOnBody [als onBody] (http: js: 123: 21) bei Socket.socketOnData [als ondata] (http: js: 1367: 20) bei TCP.onread (net.js: 403: 27) ' – <span class="text-secondary"> <small> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/1777212/">user1777212</a></span> <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">Arbeitete für mich, danke! – <span class="text-secondary"> <small> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/2162226/">gnB</a></span> <span></span> </small> </span> </p> </div> </div> </div> </div> </div> </article> </div> <div class="clearfix"> </div> <div class="relative-box"> <div class="relative">Verwandte Themen</div> <ul class="relative_list"> <li> 1. <a href="http://de.voidcc.com/question/p-prbkgcfz-v.html" target="_blank" title="Abrufen des Miniaturbilds von einer Webseite"> Abrufen des Miniaturbilds von einer Webseite </a> </li> <li> 2. <a href="http://de.voidcc.com/question/p-oghzljtj-bz.html" target="_blank" title="Abrufen einer CSV-Datei von der Webseite"> Abrufen einer CSV-Datei von der Webseite </a> </li> <li> 3. <a href="http://de.voidcc.com/question/p-uxqimdsv-ep.html" target="_blank" title="Abrufen bestimmter Informationen von einer Webseite"> Abrufen bestimmter Informationen von einer Webseite </a> </li> <li> 4. <a href="http://de.voidcc.com/question/p-yfsycfvf-m.html" target="_blank" title="Abrufen eines Teils einer Webseite mit urllib"> Abrufen eines Teils einer Webseite mit urllib </a> </li> <li> 5. <a href="http://de.voidcc.com/question/p-aobpiqiw-ec.html" target="_blank" title="Wie kann ich einen Teil des MediaWiki-Seitentitels übernehmen?"> Wie kann ich einen Teil des MediaWiki-Seitentitels übernehmen? </a> </li> <li> 6. <a href="http://de.voidcc.com/question/p-kywftige-ek.html" target="_blank" title="Ändern des Seitentitels mit dem neuen Router Angular 2"> Ändern des Seitentitels mit dem neuen Router Angular 2 </a> </li> <li> 7. <a href="http://de.voidcc.com/question/p-gxxmglmj-by.html" target="_blank" title="Wie Sie diese Elemente von einer Webseite abrufen können?"> Wie Sie diese Elemente von einer Webseite abrufen können? </a> </li> <li> 8. <a href="http://de.voidcc.com/question/p-xcrmexdo-dz.html" target="_blank" title="Senden von Formulardaten an die clientseitige Funktion zum Abrufen eines Seitentitels"> Senden von Formulardaten an die clientseitige Funktion zum Abrufen eines Seitentitels </a> </li> <li> 9. <a href="http://de.voidcc.com/question/p-yfgahnim-ck.html" target="_blank" title="Größe des Bildes auf einer Webseite ermitteln"> Größe des Bildes auf einer Webseite ermitteln </a> </li> <li> 10. <a href="http://de.voidcc.com/question/p-cesienhe-n.html" target="_blank" title="Abrufen des Werts einer Ganzzahlvariablen"> Abrufen des Werts einer Ganzzahlvariablen </a> </li> <li> 11. <a href="http://de.voidcc.com/question/p-eoauaete-cn.html" target="_blank" title="Überprüfung des Inhalts einer Webseite - Vermeidung von Code-Injektion"> Überprüfung des Inhalts einer Webseite - Vermeidung von Code-Injektion </a> </li> <li> 12. <a href="http://de.voidcc.com/question/p-kuyommfw-y.html" target="_blank" title="Abrufen des Anzeigenamens des Benutzers von WindowsIdentity"> Abrufen des Anzeigenamens des Benutzers von WindowsIdentity </a> </li> <li> 13. <a href="http://de.voidcc.com/question/p-vjgaxswn-db.html" target="_blank" title="Nur bestimmte Teile einer Webseite für geringere Netzwerknutzung abrufen?"> Nur bestimmte Teile einer Webseite für geringere Netzwerknutzung abrufen? </a> </li> <li> 14. <a href="http://de.voidcc.com/question/p-pjedlhcs-du.html" target="_blank" title="Wie viele Gegenstände wurden pro start_url geschabt"> Wie viele Gegenstände wurden pro start_url geschabt </a> </li> <li> 15. <a href="http://de.voidcc.com/question/p-tugvkjft-by.html" target="_blank" title="Wie kann ich den Seitentitel einer Webseite mit Python abrufen?"> Wie kann ich den Seitentitel einer Webseite mit Python abrufen? </a> </li> <li> 16. <a href="http://de.voidcc.com/question/p-okycejgl-ds.html" target="_blank" title="Wie kann ich den Inhalt einer HTTPS-Webseite abrufen?"> Wie kann ich den Inhalt einer HTTPS-Webseite abrufen? </a> </li> <li> 17. <a href="http://de.voidcc.com/question/p-hvrrbsvs-dz.html" target="_blank" title="Abrufen von Daten von der Webseite mit DataFrame"> Abrufen von Daten von der Webseite mit DataFrame </a> </li> <li> 18. <a href="http://de.voidcc.com/question/p-yzjzwbat-dp.html" target="_blank" title="Öffnung Anwendungen von einer Webseite"> Öffnung Anwendungen von einer Webseite </a> </li> <li> 19. <a href="http://de.voidcc.com/question/p-fcxgedtc-ea.html" target="_blank" title="Stoppen Sie Scrapy nach N Artikel geschabt"> Stoppen Sie Scrapy nach N Artikel geschabt </a> </li> <li> 20. <a href="http://de.voidcc.com/question/p-tpjkmnrp-dt.html" target="_blank" title="Scrape nur bestimmte Details von einer Webseite"> Scrape nur bestimmte Details von einer Webseite </a> </li> <li> 21. <a href="http://de.voidcc.com/question/p-pwqzlyzx-bu.html" target="_blank" title="Abrufen des Benutzerkontos von ActiveDirectory"> Abrufen des Benutzerkontos von ActiveDirectory </a> </li> <li> 22. <a href="http://de.voidcc.com/question/p-nlzekjwb-x.html" target="_blank" title="Abrufen des Tabellennamens von ActiveRecord"> Abrufen des Tabellennamens von ActiveRecord </a> </li> <li> 23. <a href="http://de.voidcc.com/question/p-pmisoehm-s.html" target="_blank" title="Abrufen des Kategorietextes von EventLogEntry.Category"> Abrufen des Kategorietextes von EventLogEntry.Category </a> </li> <li> 24. <a href="http://de.voidcc.com/question/p-vopzeiei-w.html" target="_blank" title="Abrufen des versteckten default.aspx-Segments einer URL"> Abrufen des versteckten default.aspx-Segments einer URL </a> </li> <li> 25. <a href="http://de.voidcc.com/question/p-sbwpusjy-t.html" target="_blank" title="Abrufen des Index einer eingefügten Zeile"> Abrufen des Index einer eingefügten Zeile </a> </li> <li> 26. <a href="http://de.voidcc.com/question/p-dqhfambf-bv.html" target="_blank" title="Abrufen des Datums einer .NET-Assembly"> Abrufen des Datums einer .NET-Assembly </a> </li> <li> 27. <a href="http://de.voidcc.com/question/p-cucuvunn-v.html" target="_blank" title="Neustarten einer Website von einer eigenen Webseite"> Neustarten einer Website von einer eigenen Webseite </a> </li> <li> 28. <a href="http://de.voidcc.com/question/p-mulawvho-cd.html" target="_blank" title="Abrufen des Werts einer ASP: TextBox"> Abrufen des Werts einer ASP: TextBox </a> </li> <li> 29. <a href="http://de.voidcc.com/question/p-qefjantq-cb.html" target="_blank" title="Javascript - Abrufen eines Seitentitels und einer Meta-Beschreibung und deren Verwendung als Variablen für eine Chrome-Erweiterung"> Javascript - Abrufen eines Seitentitels und einer Meta-Beschreibung und deren Verwendung als Variablen für eine Chrome-Erweiterung </a> </li> <li> 30. <a href="http://de.voidcc.com/question/p-glogrvat-bt.html" target="_blank" title="Abrufen des Typs einer MemberInfo mit Reflektion"> Abrufen des Typs einer MemberInfo mit Reflektion </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=1652515422091"></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"> Letzte Frage </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://de.voidcc.com/question/p-ygqftcng-og.html" target="_blank" title="Wie funktioniert glReadPixels in OpenGL/LWJGL?"> Wie funktioniert glReadPixels in OpenGL/LWJGL? </a> </li> <li class="side_article_list_item"> 2. <a href="http://de.voidcc.com/question/p-eakkrcto-oh.html" target="_blank" title="Transparente Ansicht Hintergrund wird schwarz"> Transparente Ansicht Hintergrund wird schwarz </a> </li> <li class="side_article_list_item"> 3. <a href="http://de.voidcc.com/question/p-ucadodbq-oh.html" target="_blank" title="App stürzt"> App stürzt </a> </li> <li class="side_article_list_item"> 4. <a href="http://de.voidcc.com/question/p-skwxvxxs-om.html" target="_blank" title="Strecke in Rails für json hängt davon ab, wo genannt von"> Strecke in Rails für json hängt davon ab, wo genannt von </a> </li> <li class="side_article_list_item"> 5. <a href="http://de.voidcc.com/question/p-dmupplkw-ok.html" target="_blank" title="Externe Links in meiner Fußzeile funktionieren nicht?"> Externe Links in meiner Fußzeile funktionieren nicht? </a> </li> <li class="side_article_list_item"> 6. <a href="http://de.voidcc.com/question/p-yrhqaatz-oa.html" target="_blank" title="Bild zu firebase hochladen"> Bild zu firebase hochladen </a> </li> <li class="side_article_list_item"> 7. <a href="http://de.voidcc.com/question/p-gwvhulre-nz.html" target="_blank" title="Teile meiner Animation gehen nicht reibungslos über. Weiß jemand, wo ich suchen soll, um das zu lösen?"> Teile meiner Animation gehen nicht reibungslos über. Weiß jemand, wo ich suchen soll, um das zu lösen? </a> </li> <li class="side_article_list_item"> 8. <a href="http://de.voidcc.com/question/p-fbukxsqy-nz.html" target="_blank" title="AWS EC2 Volumenänderung fehlt"> AWS EC2 Volumenänderung fehlt </a> </li> <li class="side_article_list_item"> 9. <a href="http://de.voidcc.com/question/p-opcpwobj-nu.html" target="_blank" title="ein Dokument für Zahlen Suchen und Drucken der Zeile oberhalb"> ein Dokument für Zahlen Suchen und Drucken der Zeile oberhalb </a> </li> <li class="side_article_list_item"> 10. <a href="http://de.voidcc.com/question/p-rqyggrcg-nt.html" target="_blank" title="Wie fokussiere ich die nächste zustandslose Eingabe, wenn ich weiter drücke"> Wie fokussiere ich die nächste zustandslose Eingabe, wenn ich weiter drücke </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> Verwandte Themen</h3> </div> <div class="article-relative-content"> <ul class="side_article_list"> <li class="side_article_list_item"> 1. <a href="http://de.voidcc.com/question/p-prbkgcfz-v.html" target="_blank" title="Abrufen des Miniaturbilds von einer Webseite"> Abrufen des Miniaturbilds von einer Webseite </a> </li> <li class="side_article_list_item"> 2. <a href="http://de.voidcc.com/question/p-oghzljtj-bz.html" target="_blank" title="Abrufen einer CSV-Datei von der Webseite"> Abrufen einer CSV-Datei von der Webseite </a> </li> <li class="side_article_list_item"> 3. <a href="http://de.voidcc.com/question/p-uxqimdsv-ep.html" target="_blank" title="Abrufen bestimmter Informationen von einer Webseite"> Abrufen bestimmter Informationen von einer Webseite </a> </li> <li class="side_article_list_item"> 4. <a href="http://de.voidcc.com/question/p-yfsycfvf-m.html" target="_blank" title="Abrufen eines Teils einer Webseite mit urllib"> Abrufen eines Teils einer Webseite mit urllib </a> </li> <li class="side_article_list_item"> 5. <a href="http://de.voidcc.com/question/p-aobpiqiw-ec.html" target="_blank" title="Wie kann ich einen Teil des MediaWiki-Seitentitels übernehmen?"> Wie kann ich einen Teil des MediaWiki-Seitentitels übernehmen? </a> </li> <li class="side_article_list_item"> 6. <a href="http://de.voidcc.com/question/p-kywftige-ek.html" target="_blank" title="Ändern des Seitentitels mit dem neuen Router Angular 2"> Ändern des Seitentitels mit dem neuen Router Angular 2 </a> </li> <li class="side_article_list_item"> 7. <a href="http://de.voidcc.com/question/p-gxxmglmj-by.html" target="_blank" title="Wie Sie diese Elemente von einer Webseite abrufen können?"> Wie Sie diese Elemente von einer Webseite abrufen können? </a> </li> <li class="side_article_list_item"> 8. <a href="http://de.voidcc.com/question/p-xcrmexdo-dz.html" target="_blank" title="Senden von Formulardaten an die clientseitige Funktion zum Abrufen eines Seitentitels"> Senden von Formulardaten an die clientseitige Funktion zum Abrufen eines Seitentitels </a> </li> <li class="side_article_list_item"> 9. <a href="http://de.voidcc.com/question/p-yfgahnim-ck.html" target="_blank" title="Größe des Bildes auf einer Webseite ermitteln"> Größe des Bildes auf einer Webseite ermitteln </a> </li> <li class="side_article_list_item"> 10. <a href="http://de.voidcc.com/question/p-cesienhe-n.html" target="_blank" title="Abrufen des Werts einer Ganzzahlvariablen"> Abrufen des Werts einer Ganzzahlvariablen </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://de.voidcc.com/contact">Sprechen Sie uns an</a></li> <li>© 2020 DE.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>