我有一个要在 netlify 上自动运行的用于股票价格的 javascript 网络抓取程序。
为了让它运行,我必须在命令终端中输入“node index.js”。
但是..在将其上传到 netlify 后如何使其自动执行 - 无需输入“node index.js”?网页抓取/API 实践
这是我的第一个网络抓取项目——所以请理解——这可能是一个非常菜鸟的问题。
这是 index.js 文件
const request = require("request-promise");
const fs = require("fs");
const cheerio = require("cheerio");
async function tsla() {
const html = await request.get(
"https://finance.yahoo.com/quote/TSLA/"
);
const $ = await cheerio.load(html);
const Price = $('[class="Fw(b) Fz(36px) Mb(-4px) D(ib)"]').text();
const Symbol = $('[class="D(ib) Fz(18px)"]').text();
const PercentChange = $('fin-streamer[class="Fw(500) Pstart(8px) Fz(24px)"][data-field="regularMarketChangePercent"]').find('span').text();
fs.writeFileSync("./tslaSymbol.csv", Symbol);
fs.writeFileSync("./tslaPrice.csv", Price);
fs.writeFileSync("./tslaPercentChange.csv", PercentChange)
console.log(Price);
console.log(Symbol);
console.log(PercentChange)
setTimeout(tsla, 1000); //60 seconds == 1minute
}
tsla();
async function aapl() {
const html = await request.get(
"https://finance.yahoo.com/quote/AAPL/"
);
const $ = await cheerio.load(html);
const Price = $('[class="Fw(b) Fz(36px) Mb(-4px) D(ib)"]').text();
const Symbol = $('[class="D(ib) Fz(18px)"]').text();
const PercentChange = $('fin-streamer[class="Fw(500) Pstart(8px) Fz(24px)"][data-field="regularMarketChangePercent"]').find('span').text();
fs.writeFileSync("./aaplSymbol.csv", Symbol);
fs.writeFileSync("./aaplPrice.csv", Price);
fs.writeFileSync("./aaplPercentChange.csv", PercentChange)
console.log(Price);
console.log(Symbol);
setTimeout(aapl, 1000); // 60,000 = 60 seconds == 1minute
}
aapl();
async function spy() {
const html = await request.get(
"https://finance.yahoo.com/quote/spy/"
);
const $ = await cheerio.load(html);
const Price = $('[class="Fw(b) Fz(36px) Mb(-4px) D(ib)"]').text();
const Symbol = $('[class="D(ib) Fz(18px)"]').text();
const PercentChange = $('fin-streamer[class="Fw(500) Pstart(8px) Fz(24px)"][data-field="regularMarketChangePercent"]').find('span').text();
fs.writeFileSync("./spySymbol.csv", Symbol);
fs.writeFileSync("./spyPrice.csv", Price);
fs.writeFileSync("./spyPercentChange.csv", PercentChange)
console.log(Price);
console.log(Symbol);
console.log(PercentChange);
setTimeout(spy, 1000); // 60,000 = 60 seconds == 1minute
}
spy();
async function nvda() {
const html = await request.get(
"https://finance.yahoo.com/quote/nvda/"
);
const $ = await cheerio.load(html);
const Price = $('[class="Fw(b) Fz(36px) Mb(-4px) D(ib)"]').text();
const Symbol = $('[class="D(ib) Fz(18px)"]').text();
const PercentChange = $('fin-streamer[class="Fw(500) Pstart(8px) Fz(24px)"][data-field="regularMarketChangePercent"]').find('span').text();
fs.writeFileSync("./nvdaSymbol.csv", Symbol);
fs.writeFileSync("./nvdaPrice.csv", Price);
fs.writeFileSync("./nvdaPercentChange.csv", PercentChange)
console.log(Price);
console.log(Symbol);
console.log(PercentChange);
setTimeout(nvda, 1000); // 60,000 = 60 seconds == 1minute
}
nvda();
基本上,javascript 会抓取该数据并将其发送到 CSV 文件,然后将其显示在页面中。
我认为在将项目部署到 netlify 之前,您必须在项目中创建两个文件,
如果您知道,请忽略它并确保您已在 package.json 中编写脚本,然后在部署时您应该能够配置您的构建命令,这样就可以了。
你也可以从这里获得一些帮助netify 功能是这样做的方法,因为 netlify 主机静态兼容
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句