【发布时间】:2019-09-10 12:46:33
【问题描述】:
我有一张这样的桌子。名称列中的所有名称都是导航到下一页的链接。
|---------------------|------------------|
| NAME | ID |
|---------------------|------------------|
| Name 1 | 1 |
|---------------------|------------------|
| Name 2 | 2 |
|---------------------|------------------|
| Name 3 | 3 |
|---------------------|------------------|
我正在尝试获取链接,从中提取数据,然后返回表格。但是,表中有超过 4000 条记录,并且所有内容的处理速度都非常慢(每条记录大约 1000 毫秒)
这是我的代码:
//Grabs all table rows.
const items = await page.$$(domObjects.itemPageLink);
for (let i = 0; i < items.length; i++) {
await page.goto(url);
await page.waitForSelector(domObjects.itemPageLink);
let items = await page.$$(domObjects.itemPageLink);
const item = items[i];
let id = await item.$eval("td:last-of-type", node => node.innerText.split(",").map(item => item.trim()));
let link = await item.$eval("td:first-of-type a", node => node.click());
await page.waitForSelector(domObjects.itemPageWrapper);
let itemDetailsPage = await page.$(domObjects.itemPageWrapper);
let title = await itemDetailsPage.$eval(".page-header__title", title => title.innerText);
console.log(title);
console.log(id);
}
有没有办法加快这个速度,以便我可以更快地一次获得所有结果?我想将它用于我的 API。
【问题讨论】:
标签: javascript node.js puppeteer