【发布时间】:2022-05-11 22:10:45
【问题描述】:
这里是新手。我正在进行网络抓取项目。我想要一些关于网页抓取分页技术的指南。我正在抓取这个网站https://www.imoney.my/unit-trust-investments。如您所见,我想根据 X 年检索不同的“总回报”百分比。现在我正在使用cheerio和axios。
const http = require("http");
const axios = require("axios");
const cheerio = require("cheerio");
http
.createServer(async function (_, res) {
try {
const response = await axios.get(
"https://www.imoney.my/unit-trust-investments"
);
const $ = cheerio.load(response.data);
const funds = [];
$("[class='list-item']").each((_i, row) => {
const $row = $(row);
const fund = $row.find("[class*='product-title']").find("a").text();
const price = $row.find("[class*='is-narrow product-profit']").find("b").text();
const risk = $row.find("[class*='product-title']").find("[class*='font-xsm extra-info']").text().replace('/10','');;
const totalreturn = $row.find("[class*='product-return']").find("[class='font-lg']").find("b").text().replace('%','');
funds.push({ fund, price, risk, totalreturn});
});
res.statusCode = 200;
res.write(JSON.stringify(funds, null, 4));
} catch (err) {
res.statusCode = 400;
res.write("Unable to process request.");
}
res.end();
})
.listen(8080);
请注意,选择不同年份时,URL 不会改变,只会改变总回报的值
【问题讨论】:
标签: javascript node.js web-scraping axios cheerio