gpt4 book ai didi

javascript - 使用 Request (Node.js) 循环访问多个 url

转载 作者:行者123 更新时间:2023-12-03 12:18:29 25 4
gpt4 key购买 nike

我目前有一个 app.get() 方法,它使用 request 和 Cheerio 从 iTunes 评论中提取 html。

// get all reviews
app.get('/api/reviews', function(req, res) {
var options = {
url: 'https://itunes.apple.com/WebObjects/MZStore.woa/wa/customerReviews',
qs: {
'displayable-kind': '11',
'id': 'XXXXXXXXX',
'page': i,
'sort': '4'
},
headers: {
'User-Agent': 'iTunes/10.3.1 (Macintosh; Intel Mac OS X 10.6.8) AppleWebKit/533.21.1',
'X-Apple-Store-Front': '143441-1,12',
'X-Apple-Tz': '-18000',
'Accept-Language': 'en-us, en;q=0.50',
}
}

request(options, function(error, response, html) {
// load html, parse, do work, etc.
// res.send(results);
}
};

我想迭代这个 url 调用,其中“page”查询是一个变量,如下所示。我收到“错误:发送后无法设置 header ”。尝试这种方式时出错。您如何更改 header 并进行另一个 url 调用?

app.get('/api/reviews', function(req, res) {
for(var i = 0; i < 4; i++) {
var options = {
url: 'https://itunes.apple.com/WebObjects/MZStore.woa/wa/customerReviews',
qs: {
'displayable-kind': '11',
'id': 'XXXXXXXXX',
'page': '1',
'sort': '4'
},
headers: {
'User-Agent': 'iTunes/10.3.1 (Macintosh; Intel Mac OS X 10.6.8) AppleWebKit/533.21.1',
'X-Apple-Store-Front': '143441-1,12',
'X-Apple-Tz': '-18000',
'Accept-Language': 'en-us, en;q=0.50',
}
}

request(options, function(error, response, html) {
// load html, parse, do work, etc.
}
}
};

最佳答案

您遇到的问题是您尝试以 block 的形式发送结果页面,但这是行不通的。您可以通过收集所有请求结果然后将您需要的任何数据发送回客户端来解决此问题。

以下是使用 async 执行此操作的示例:

var async = require('async');

app.get('/api/reviews', function(req, res) {
async.times(4, function(i, cb) {
var options = {
url: 'https://itunes.apple.com/WebObjects/MZStore.woa/wa/customerReviews',
qs: {
'displayable-kind': '11',
'id': 'XXXXXXXXX',
'page': i,
'sort': '4'
},
headers: {
'User-Agent': 'iTunes/10.3.1 (Macintosh; Intel Mac OS X 10.6.8) AppleWebKit/533.21.1',
'X-Apple-Store-Front': '143441-1,12',
'X-Apple-Tz': '-18000',
'Accept-Language': 'en-us, en;q=0.50',
}
}
request(options, function(error, response, html) {
// load html, parse, do work, etc.
// var result = ...;
cb(null, result);
});
}, function(err, results) {
// completed processing of all items
// array of `request` results are stored in results
// send data to client here
});
});

关于javascript - 使用 Request (Node.js) 循环访问多个 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24558228/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com