In diesem Artikel wird hauptsächlich der Beispielcode des http-Crawlers basierend auf dem Knoten vorgestellt. Jetzt teile ich ihn mit Ihnen und gebe ihn als Referenz.
Jeden Moment, ob Sie schlafen oder nicht, werden im Internet riesige Datenmengen ein- und ausgehen, vom Kundendienst bis zum Server und von Server zu Server. Die Rolle von http's get und request besteht darin, Daten abzurufen und zu übermitteln. Als Nächstes beginnen wir mit dem Schreiben eines einfachen kleinen Crawlers, um die Kursschnittstelle des Kapitels über Knoten im Anfänger-Tutorial zu crawlen.
Kriechen Sie alle Daten auf der Node.js-Tutorial-Homepage
Erstellen Sie node-http.js. Der Code lautet wie folgt. Der Code enthält detaillierte Kommentare. Sie können es selbst verstehen. Ha
var http=require('http');//获取http模块 var url='http://www.runoob.com/nodejs/nodejs-tutorial.html';//定义node官网地址变量 http.get(url,function(res){ var html=''; // 这里将会触发data事件,不断触发不断跟新html直至完毕 res.on('data',function(data){ html +=data }) // 当数据获取完成将会触发end事件,这里将会打印初node官网的html res.on('end',function(){ console.log(html) }) }).on('error',function(){ console.log('获取node官网相关数据出错') })
Im Ergebnis der Terminalausführung wurde festgestellt, dass der gesamte HTML-Code dieser Seite nach unten gecrawlt wurde
G:\node\node-http> node node-http.js <!Doctype html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta property="qc:admins" content="465267610762567726375" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Node.js 教程 | 菜鸟教程</title> <link rel='dns-prefetch' href='//s.w.org' /> <link rel="canonical" href="http://www.runoob.com/nodejs/nodejs-tutorial.html" /> <meta name="keywords" content="Node.js 教程,node,Node.js,nodejs"> <meta name="description" content="Node.js 教程 简单的说 Node.js 就是运行在服务端的 JavaScript。 Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台 。 Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。 谁适合阅读本教程? 如果你是一个前端程序员,你不懂得像PHP、Python或Ruby等动态编程语言,.."> <link rel="shortcut icon" href="//static.runoob.com/images/favicon.ico" rel="external nofollow" rel="external nofollow" mce_href="//static.runoob.com/images/favicon.ico" rel="external nofollow" rel="external nofollow" type="image/x-icon"> <link rel="stylesheet" href="/wp-content/themes/runoob/style.css?v=1.141" rel="external nofollow" type="text/css" media="all" /> <link rel="stylesheet" href="//cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="external nofollow" media="all" /> <!--[if gte IE 9]><!--> 。。。。。。。。。。 这里只展示部分不然你半天看不到头
Natürlich ist das Crawlen von HTML nutzlos Jetzt müssen wir einige Filter durchführen, z. B. Folgendes: Im Node-Tutorial möchte ich wissen, was der Kurskatalog ist, damit ich auswählen kann, woran ich interessiert bin, und lernen kann. Gehen wir direkt zum Code:
Aber vorher müssen wir das Cheerio-Modul herunterladen (Cheerio ist das Seiten-Crawling-Modul von NodeJS, speziell für den Server angepasst, eine schnelle, flexible und implementierte jQuery-Kernimplementierung. Geeignet für alle Arten von Web-Crawler-Programmen.) Sie können selbst nach Details suchen. Die Verwendung von cheerio ist der Verwendung von jquery sehr ähnlich, sodass Sie sich keine Gedanken über den Einstieg machen müssen.
PS G:\node\node-http> npm install cheerio
Erstellen Sie node-http-more.js, der Code lautet wie folgt:
var http=require('http');//获取http模块 var cheerio=require('cheerio');//引入cheerio模块 var url='http://www.runoob.com/nodejs/nodejs-tutorial.html';//定义node官网地址变量 // filer node chapter function filerNodeChapter(html){ // 将爬取得HTML装载起来 var $=cheerio.load(html); // 拿到左侧边栏的每个目录 var nodeChapter=$('#leftcolumn a'); //这里我希望我能获取的到的最终数据格式这个样子的,如此我们能知道每个目录的地址及标题 /** * [{id:,title:}] */ var chapterData=[]; nodeChapter.each(function(item){ // 获取每项的地址及标题 var id=$(this).attr('href'); var title=$(this).text(); chapterData.push({ id:id, title:title }) }) return chapterData; } //获取每个数据 function getChapterData(nodeChapter){ nodeChapter.forEach(function(item){ console.log(' 【 '+item.id+' 】'+item.title+'\n') }); } http.get(url,function(res){ var html=''; // 这里将会触发data事件,不断触发不断跟新html直至完毕 res.on('data',function(data){ html +=data }) // 当数据获取完成将会触发end事件,这里将会打印初node官网的html res.on('end',function(){ //console.log(html) // 过滤出node.js的课程目录 var nodeChapter= filerNodeChapter(html); //循环打印所获取的数据 getChapterData(nodeChapter) }) }).on('error',function(){ console.log('获取node官网相关数据出错') })
Terminal-Ausführungsergebnisse und Ausdrucken des Kursverzeichnisses
G:\node\node-http> node node-http-more.js 【 /nodejs/nodejs-tutorial.html 】 Node.js 教程 【 /nodejs/nodejs-install-setup.html 】 Node.js 安装配置 【 /nodejs/nodejs-http-server.html 】 Node.js 创建第一个应用 【 nodejs-npm.html 】 NPM 使用介绍 【 nodejs-repl.html 】 Node.js REPL 【 nodejs-callback.html 】 Node.js 回调函数 【 nodejs-event-loop.html 】 Node.js 事件循环 【 nodejs-event.html 】 Node.js EventEmitter 【 nodejs-buffer.html 】 Node.js Buffer 【 nodejs-stream.html 】 Node.js Stream 【 /nodejs/nodejs-module-system.html 】 Node.js 模块系统 。。。。。。。。。。。 这里就不全部给出,你可以自己尝试着运行操作查看所有结果
Das Obige ist, was ich Für alle zusammengestellt, hoffe ich, dass es in Zukunft für alle hilfreich sein wird.
Verwandte Artikel:
So verwenden Sie SVG in React- und Vue-Projekten
Vergleichen Sie die Uhrzeit desselben Tages mit JavaScript
Verwenden Sie vue2.0.js, um einen mehrstufigen Verknüpfungsselektor zu implementieren
Verwenden Sie Vue, um die sekundäre Routeneinstellungsmethode zu implementieren
Erzielen Sie mehrere Routing-Implementierungen in Vue-Router2.X
Das obige ist der detaillierte Inhalt vonSo implementieren Sie den HTTP-Crawler im Knoten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Es ist für Entwickler wichtig, zu verstehen, wie die JavaScript -Engine intern funktioniert, da sie effizientere Code schreibt und Leistungs Engpässe und Optimierungsstrategien verstehen kann. 1) Der Workflow der Engine umfasst drei Phasen: Parsen, Kompilieren und Ausführung; 2) Während des Ausführungsprozesses führt die Engine dynamische Optimierung durch, wie z. B. Inline -Cache und versteckte Klassen. 3) Zu Best Practices gehören die Vermeidung globaler Variablen, die Optimierung von Schleifen, die Verwendung von const und lass und die Vermeidung übermäßiger Verwendung von Schließungen.

Python eignet sich besser für Anfänger mit einer reibungslosen Lernkurve und einer kurzen Syntax. JavaScript ist für die Front-End-Entwicklung mit einer steilen Lernkurve und einer flexiblen Syntax geeignet. 1. Python-Syntax ist intuitiv und für die Entwicklung von Datenwissenschaften und Back-End-Entwicklung geeignet. 2. JavaScript ist flexibel und in Front-End- und serverseitiger Programmierung weit verbreitet.

Python und JavaScript haben ihre eigenen Vor- und Nachteile in Bezug auf Gemeinschaft, Bibliotheken und Ressourcen. 1) Die Python-Community ist freundlich und für Anfänger geeignet, aber die Front-End-Entwicklungsressourcen sind nicht so reich wie JavaScript. 2) Python ist leistungsstark in Bibliotheken für Datenwissenschaft und maschinelles Lernen, während JavaScript in Bibliotheken und Front-End-Entwicklungsbibliotheken und Frameworks besser ist. 3) Beide haben reichhaltige Lernressourcen, aber Python eignet sich zum Beginn der offiziellen Dokumente, während JavaScript mit Mdnwebdocs besser ist. Die Wahl sollte auf Projektbedürfnissen und persönlichen Interessen beruhen.

Die Verschiebung von C/C zu JavaScript erfordert die Anpassung an dynamische Typisierung, Müllsammlung und asynchrone Programmierung. 1) C/C ist eine statisch typisierte Sprache, die eine manuelle Speicherverwaltung erfordert, während JavaScript dynamisch eingegeben und die Müllsammlung automatisch verarbeitet wird. 2) C/C muss in den Maschinencode kompiliert werden, während JavaScript eine interpretierte Sprache ist. 3) JavaScript führt Konzepte wie Verschlüsse, Prototypketten und Versprechen ein, die die Flexibilität und asynchrone Programmierfunktionen verbessern.

Unterschiedliche JavaScript -Motoren haben unterschiedliche Auswirkungen beim Analysieren und Ausführen von JavaScript -Code, da sich die Implementierungsprinzipien und Optimierungsstrategien jeder Engine unterscheiden. 1. Lexikalanalyse: Quellcode in die lexikalische Einheit umwandeln. 2. Grammatikanalyse: Erzeugen Sie einen abstrakten Syntaxbaum. 3. Optimierung und Kompilierung: Generieren Sie den Maschinencode über den JIT -Compiler. 4. Führen Sie aus: Führen Sie den Maschinencode aus. V8 Engine optimiert durch sofortige Kompilierung und versteckte Klasse.

Zu den Anwendungen von JavaScript in der realen Welt gehören die serverseitige Programmierung, die Entwicklung mobiler Anwendungen und das Internet der Dinge. Die serverseitige Programmierung wird über node.js realisiert, die für die hohe gleichzeitige Anfrageverarbeitung geeignet sind. 2. Die Entwicklung der mobilen Anwendungen erfolgt durch reaktnative und unterstützt die plattformübergreifende Bereitstellung. 3.. Wird für die Steuerung von IoT-Geräten über die Johnny-Five-Bibliothek verwendet, geeignet für Hardware-Interaktion.

Ich habe eine funktionale SaaS-Anwendung mit mehreren Mandanten (eine EdTech-App) mit Ihrem täglichen Tech-Tool erstellt und Sie können dasselbe tun. Was ist eine SaaS-Anwendung mit mehreren Mietern? Mit Multi-Tenant-SaaS-Anwendungen können Sie mehrere Kunden aus einem Sing bedienen

Dieser Artikel zeigt die Frontend -Integration mit einem Backend, das durch die Genehmigung gesichert ist und eine funktionale edtech SaaS -Anwendung unter Verwendung von Next.js. erstellt. Die Frontend erfasst Benutzerberechtigungen zur Steuerung der UI-Sichtbarkeit und stellt sicher, dass API-Anfragen die Rollenbasis einhalten


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

SublimeText3 Linux neue Version
SublimeText3 Linux neueste Version

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft