Heim > Artikel > Web-Frontend > Node.js-Implementierung eines einfachen neuartigen Crawler-Beispiels
Aufgrund eines Mangels an Dramen folgte Boss einem Online-Drama von iQiyi, das aus Ding Mos gleichnamigem Roman „Beauty for Stuffing“ adaptiert wurde, obwohl das gesamte Drama bereits ausgebucht ist der Mängel, Boss, ich habe es wirklich genossen, es zu sehen, und nachdem ich die zweite Staffel gesehen hatte, fragte ich nach Romanressourcen und ging direkt zum Originalroman, um das Ende zu lesen ...
Ich habe einfach gesucht , und sie waren alle Online-Ressourcen, und ich habe sie heruntergeladen. Wenn Sie sich anmelden müssen, ist es in Ordnung, zum Spaß einen Crawler zu schreiben. Ich werde mir hier Notizen machen 🎜>
Speichern Sie die neuartigen Informationen in einer Markdown-Datei und fügen Sie entsprechende Änderungen und Kapitelinformationen hinzu (Datei fs schreiben, synchronisieren Ressourcenanforderungs-Synchronisierungsanforderungsmodul)Markdown in PDF konvertieren (verwenden Sie die Druckfunktion von Pandoc oder Chrome)URLs abrufen
var http = require("http") var fs = require("fs") var cheerio = require("cheerio") var iconv = require("iconv-lite") var url = 'http://www.17fa.com/files/article/html/90/90747/index.html' http.get(url, function(res) { //资源请求 var chunks = [] res.on('data', function(chunk) { chunks.push(chunk) }) res.on('end', function() { var html = iconv.decode(Buffer.concat(chunks), 'gb2312') //转码操作 var $ = cheerio.load(html, { decodeEntities: false }) var content = $("tbody") var links = [] $('div').children('a').each(function(i, elem) { var link = new Object() link.title = $(this).text() link.link = 'http://www.17fa.com/files/article/html/90/90747/' + $(this).attr('href') //补齐 URL 信息 if (i > 5) { links.push(link) } }) fs.writeFile("list.json", JSON.stringify(links), function(err) { if (!err) { console.log("写文件成功") } }) }).on('error', function() { console.log("网页访问出错") }) })Beispiel für eine erhaltene Liste
[{ "title": "3 法医司白", "link": "http://www.17fa.com/files/article/html/90/90747/16548771.html" }, { "title": "4 第1个梦 ", "link": "http://www.17fa.com/files/article/html/90/90747/16548772.html" }, { "title": "5 刑警韩沉 ", "link": "http://www.17fa.com/files/article/html/90/90747/16548773.html" }, { "title": "6 最初之战", "link": "http://www.17fa.com/files/article/html/90/90747/16548774.html " }]Erhalten von Daten
var http = require("http") var fs = require("fs") var cheerio = require("cheerio") var iconv = require("iconv-lite") var request = require('sync-request') var urlList = JSON.parse(fs.readFileSync('list.json', 'utf8')) function getContent(chapter) { var res = request('GET',chapter.link) var html = iconv.decode(res.body, 'gb2312') //获取源码 } for (let i = 0; i < urlList.length; i++) { getContent(urlList[i]) }Parsen Sie den Quellcode, um den Roman zu erhalten
function getContent(chapter) { var res = request('GET',chapter.link) var html = iconv.decode(res.body, 'gb2312') var $ = cheerio.load(html, { decodeEntities: false }) var content = ($("div#r1c").text()).replace(/\ /g, '') }Speichern Sie den Roman
hinzugefügt.
var http = require("http") var fs = require("fs") var cheerio = require("cheerio") var iconv = require("iconv-lite") var path = require('path') var urlList = JSON.parse(fs.readFileSync('list.json', 'utf8')) function getContent(chapter) { console.log(chapter.link) http.get(chapter.link, function(res) { var chunks = [] res.on('data', function(chunk) { chunks.push(chunk) }) res.on('end', function() { var html = iconv.decode(Buffer.concat(chunks), 'gb2312') var $ = cheerio.load(html, { decodeEntities: false }) var content = ($("div#r1c").text()).replace(/\ /g, '') if (fs.existsSync('美人为馅.md')) { fs.appendFileSync('美人为馅.md', '### ' + chapter.title) fs.appendFileSync('美人为馅.md', content) } else { fs.writeFileSync('美人为馅.md', '### ' + chapter.title) fs.appendFileSync('美人为馅.md', content) } }) }).on('error', function() { console.log("爬取" + chapter.link + "链接出错!") }) } for (let i = 0; i < urlList.length; i++) { console.log(urlList[i]) getContent(urlList[i]) }Markdown in PDF
pandoc-Konvertierungpandoc ist ein sehr leistungsfähiges Dateiformat-Konvertierungstool, das Markdown-Dateien in mehrere Formate konvertieren kann. Ich hatte heute Abend unter Windows 10 Probleme, aber ich Ich kann pdflatex immer noch nicht abrufen. Bezüglich Pandoc werde ich später eine Zusammenfassung schreiben.
Das PDF wurde an den Chef gesendet und ich lese es jetzt
Schon lange vorher habe ich Ich wollte Python verwenden, ich möchte unbedingt einen Crawler schreiben, und ich möchte sogar Python verwenden, um einen Crawler zu schreiben. Je umfassender das Wissen wird, desto mehr verschwindet die Obsession ist viel weniger „Nachdenken“. Wenn Dinge passieren, denke ich mehr darüber nach, aktiv zu werden und zu üben, um wahres Wissen zu erlangen.