javascript - Puppeteer 获取所有 <a> href 链接

标签 javascript node.js puppeteer

你好,我正在尝试抓取一个网页并返回其中的所有链接 html 元素的示例:

<a href="#/item/2sDSXbG">
<a href="#/item/4ssaSXbG">
<a href="#/item/Sawd432">

这是我的代码:

let links = [];
let elements2 = document.querySelectorAll('a');
  for (var element2 of elements2)
  links.push(element2.textContent);

在我返回值并打印它之后,我得到一个错误,告诉我我的变量没有定义 我的错误:

UnhandledPromiseRejectionWarning: ReferenceError: links is not defined

最终目标: 我的目标是能够创建列表中所有项目的数组。我稍后会解析信息,以便它只是/item/

之后的文本

最佳答案

这似乎是您使用 puppeteer 实现目标所需要的:

const hrefs = await page.evaluate(() => {
  let links = [];
  let elements2 = document.querySelectorAll('a');
  for (let element2 of elements2)
    links.push(element2.href);
  return links;
});

关于javascript - Puppeteer 获取所有 <a> href 链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67945354/

相关文章:

javascript - angular-ui datepicker max-date 不能正常工作

node.js - 应该为NodeJS编写NumPy插件还是NumPy包装器?

cookies - 为什么 Puppeteer 的 setCookie() 似乎没有按预期工作?

javascript - 与 json 一起调用 Javascript 函数

javascript - defaultLocale 未在 Next.js i18n 中保留默认语言

node.js - 在 POST 请求中转发上传的文件 - Express

node.js - 使用 Mocha 测试 NightmareJS 代码失败

javascript - 在 Puppeteer 中排除具有某些类的元素

javascript - 如何将 puppeteer 浏览器设置为变量?

javascript - Jquery 代码效率低下?