【发布时间】:2018-09-29 07:51:44
【问题描述】:
url = "www.w3schools.com/html/html5_video.asp"
VIDEO_LINKS = [];
VIDEO_LIST = [];
function fillVideo(callback) {
request(url, function(err, res, body) {
if (body) {
$ = cheerio.load(body);
}
links = $('source');
$(links).each(function(i, link) {
var value = $(link).attr('src');
if (value.slice(-3) == "mp4" ||
value.slice(-4) == "webm" ||
value.slice(-3) == "ogv") {
VIDEO_LINKS.push(value);
VIDEO_LIST.push($(link).text());
}
})
callback();
});
}
function writeVideo() {
for (j = 0; j < VIDEO_LIST.length; j++) {
request(VIDEO_LINKS[j]).pipe(fs.createWriteStream(VIDEO_LIST[j]));
}
}
fillVideo(writeVideo);
//www.electronicinfo.ca/printable-pdfs
PDF_LINKS = [];
PDF_LIST = [];
function fillPDF(callback) {
request(url, function(err, res, body) {
$ = cheerio.load(body);
links = $('a');
$(links).each(function(i, link) {
var value = $(link).attr('href');
if (value.slice(-3) == "pdf") {
PDF_LINKS.push(value);
PDF_LIST.push($(link).text());
}
})
callback();
});
}
function writePDF() {
for (j = 0; j < PDF_LIST.length; j++) {
request(PDF_LINKS[j]).pipe(fs.createWriteStream(PDF_LIST[j]));
}
}
fillPDF(writePDF);
嗨,这是以前可以工作的代码,从大约 5 分钟前开始,我几乎没有改变任何东西,我唯一改变的就是复制它,并更改变量名。我的问题是如何修复此代码?我知道错误是 body 是空的,但我不知道如何解决它,我会寻求任何帮助...
【问题讨论】:
-
我几乎没有改变任何东西 .... 我唯一改变的东西...(脖子上的快速矛盾在那里...)跨度>
-
哪个在工作,第一个还是第二个?
-
另外:
if (body) { $ = cheerio.load(body); }似乎是错误的。如果body是假的怎么办?您只需使用$尽管它没有分配任何东西。 -
它曾经是 PDF 之一(秒),但现在都不起作用!
-
只需删除
if检查。如果body为空,则$将不匹配任何内容。
标签: javascript html node-request