我试图用Node.js抓取网页的内容,并将其与作为文件存储的同一页的副本进行比较,如下所示:
var fs = require("fs");
var request = require("request");
var archive = ["./archive.html", "http://praguerace.com/comic/archive"];
request(archive[1], //request Prague Race's archive
function (error, response, bo
我以前用Node.js编写过应用程序,特别是数据采集器。这些类型的应用程序没有web前端,而只是使用cron作业定时的进程,以异步地发出许多可能复杂的HTTP GET请求,以拉取网页,然后从结果中抓取并存储数据。
我可能会编写的函数示例如下:
// Node.js
var request = require("request");
function scrapeEverything() {
var listOfIds = [23423, 52356, 63462, 34673, 67436];
for (var i = 0; i < listOfId
在使用Node.js运行的程序中,我有一个for-循环。函数是来自包的x(),我使用它从网页中抓取和接收数据,然后将数据写入文件。这个程序是成功的,当使用刮约100页,但我需要刮~10000页。当我试图抓取大量的页面时,文件将被创建,但它们不包含任何数据。我认为存在这个问题是因为for -循环没有等待x()返回数据,然后再进行下一次迭代。
是否有一种方法让节点等待x()函数完成,然后再进行下一次迭代?
//takes in file of urls, 1 on each line, and splits them into an array.
//Then scrapes webpages
的主要目的:--我正在尝试使用Node.js从大约10,000个不同的页面中抓取数据。
问题:非常快地通过了最初的500~1000,然后变成了海龟(在它变慢的地方)之后,最终似乎永远被困住了。
我使用Node.js中的Node.js模块来发出请求,然后使用cheerio开始抓取,
此代码复制了我的问题:
var request = require('request');
var requestsCalledCounter = 0;
var requestsCompletedCounter = 0;
var MAX_REQUESTS = 500;
var start = fu