Puppeteer 获取所有 <a> href 链接
Puppeteer get all <a> href links
您好,我正在尝试 抓取 一个网页和 return 里面的所有链接
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);
在我 return 值并打印它之后,我得到一个错误,告诉我我的变量没有定义
我的错误:
UnhandledPromiseRejectionWarning: ReferenceError: links is not defined
最终目标:
我的目标是能够创建列表中所有项目的数组。我稍后会解析信息,以便它只是 /item/
之后的文本
主播没有任何内容。
你需要这样的东西
<a href="#/item/2sDSXbG">content1</a>
<a href="#/item/4ssaSXbG">content2</a>
<a href="#/item/Sawd432">content3</a>
这似乎是您使用 puppeteer 实现目标所需要的:
const hrefs = await page.evaluate(() => {
let links = [];
let elements2 = document.querySelectorAll('a');
for (let element2 of elements2)
links.push(element2.href);
return links;
});
使用 $$eval:
let hrefs = await page.$$eval('a', as => as.map(a => a.href))
您好,我正在尝试 抓取 一个网页和 return 里面的所有链接 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);
在我 return 值并打印它之后,我得到一个错误,告诉我我的变量没有定义 我的错误:
UnhandledPromiseRejectionWarning: ReferenceError: links is not defined
最终目标: 我的目标是能够创建列表中所有项目的数组。我稍后会解析信息,以便它只是 /item/
之后的文本主播没有任何内容。 你需要这样的东西
<a href="#/item/2sDSXbG">content1</a>
<a href="#/item/4ssaSXbG">content2</a>
<a href="#/item/Sawd432">content3</a>
这似乎是您使用 puppeteer 实现目标所需要的:
const hrefs = await page.evaluate(() => {
let links = [];
let elements2 = document.querySelectorAll('a');
for (let element2 of elements2)
links.push(element2.href);
return links;
});
使用 $$eval:
let hrefs = await page.$$eval('a', as => as.map(a => a.href))