【发布时间】:2021-06-15 06:57:09
【问题描述】:
我正在尝试获取 google 搜索的链接,并使用 node js 和cheerio 来抓取这些链接。带有 jQuery 的 DOM 选择器在浏览器控制台中运行良好,但是当我运行我的代码时,它会输出一个空数组。我正在使用以下代码
const cheerio = require("cheerio");
const axios = require("axios").default;
(async () => {
const getData = async (url) => {
const { data } = await axios(url);
const $ = cheerio.load(data);
const links = Array.from($('div[class="yuRUbf"] >a')).map((a) => a.href);
console.log(links);
};
getData(
"https://www.google.com/search?q=Let+You+Love+Me+by+Rita+Ora&sxsrf=ALeKk02Hp5Segi8ShvyrREw3NLZ6p7_BKw:1622526254457&ei=Lsm1YPSzG9WX1fAPvdqTgAg&sa=N&ved=2ahUKEwj0gqSo3fXwAhXVSxUIHT3tBIAQ8tMDegQIARA7&biw=1517&bih=694"
);
})();
【问题讨论】:
-
有几件事:
a.yuRUbf不是一个可靠的选择器。这势必会改变。此外,我绝对希望该请求失败,因为它不会伪造标头(假装是真正的浏览器请求)。
标签: javascript node.js cheerio