gpt4 book ai didi

node.js - 使用 Node.js 抓取和存储 Shopify 电子商务网站

转载 作者:太空宇宙 更新时间:2023-11-03 22:22:27 25 4
gpt4 key购买 nike

我编写了一段代码,使用 node.js 中的 website-scraper npm 模块来抓取一系列 Shopify 电子商务网站,但它显示 403 错误,但相同的代码适用于其他网站。

我们如何解决这个问题?

我的 scraperTest.js 文件是:

var scrape = require('website-scraper');
let test = require('./test')
let urls = [];
urlList = ['1500.academy'];
urlList.forEach(url =>{
test.checkRedirect(url)
.then(domain =>{
urls.push('https://' + domain);
console.log(urls);
var options = {
urls: urls,
directory: './autochat/',
'User-Agent': 'request',
};

// with promise
scrape(options).then((result) => {
/* some code here */
}).catch((err) => {
/* some code here */
});

// or with callback
scrape(options, (error, result) => {
/* some code here */
});
})
})

test.js 文件是

const request = require('request');
const extractDomain = require('extract-domain');

//var link = 'oneplustwocase.com';

function checkRedirect(link) {
return new Promise((resolve, reject) => {

var url = "http://" + link;
var options = {
url: url,
headers: {
'User-Agent': 'request'
}
};
request(options, function (error, response, body) {
let redirectedDomain = extractDomain(response.request.uri.href);
if(response !== undefined){
extractDomain(response.request.uri.href);
if (response.statusCode === 200 && link !== redirectedDomain) {
resolve(redirectedDomain);
} else {
resolve(link);
}
} else {
resolve(link);
}
});
});
}

module.exports.checkRedirect = checkRedirect;

最佳答案

我找到了解决方案。我们可以使用 request() 获取域的 html 数据;response.body包含html数据

我使用以下代码得到的解决方案:

const request = require('request');
const extractDomain = require('extract-domain');
let fs = require('fs');

function checkRedirect(link) {
var url = "http://" + link;
var options = {
url: url,
headers: {
'User-Agent': 'request'
}
};
request(options, function (error, response, body) {

if(response !== undefined){
let redirectedDomain = extractDomain(response.request.uri.href);
let writeStream = fs.createWriteStream(redirectedDomain + '.html');
writeStream.write(response.body)
writeStream.end();
});
}

module.exports.checkRedirect = checkRedirect;

//checkRedirect('oneplustwocase.com')

/*
var r = request(url, function (e, resp) {
r.uri
resp.request.uri
})*/

关于node.js - 使用 Node.js 抓取和存储 Shopify 电子商务网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52663482/

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