javascript - 如何在异步函数之外获取一系列链接?
问题描述
我是一名 Python 专家,对 puppeteer 和 JavaScript 非常陌生。我正在尝试抓取一个页面并从该页面中获取一些特定链接并将这些链接保存在一个数组中。我希望这个数组在函数之外并且是全局的。这是我的python代码:
base_url ="https://www.blablabla.com"
links = []
for a in soup.find_all('a',attrs={'class':"o-job-card"}, href=True):
links.append( base_url + a['href'] )
但是我的老板希望我对 puppeteer 做同样的事情。无论如何,我想出了下面的解决方案。但是有一些问题:我可以 console.log(my_links[i]) 并查看链接,但我不能 links.push(my_links[i]); 我不明白为什么......有人可以向我解释一下吗?
这是整个代码:
const puppeteer = require('puppeteer');
async function main() {
try {
const browser = await puppeteer.launch();
const [page] = await browser.pages();
await page.goto('https://www.blablabla.com');
return await page.evaluate(() =>
Array.from(document.querySelectorAll('a.o-job-card[href]'), (a) => a.getAttribute('href'))
);
} catch (err) {
console.error(err);
}
}
let links = [];
var txt = 'https://www.blablabla.com';
let userToken = main();
userToken.then(function (my_links) {
for (i = 0; i < my_links.length; i++) {
my_links[i] = txt + my_links[i];
links.push(my_links[i]);
}
});
console.log(links);
解决方案
推荐阅读
- flutter - 如何将 Flutter App 连接到 github csv 存储库?
- javascript - 如何从 javascript 错误对象中读取错误消息
- puppet - 如何使用任务将文件从主节点复制到代理节点
- python - 将 Scipy.signal.filtfilt 与矢量化一起使用
- flutter - Handle Grid list view with add button in flutter
- python-3.x - 尽管安装了 python 脚本,但在执行 python 脚本时“没有模块 cv2”
- javascript - 根据哈希中的内容打开 html 部分
- .htaccess - Htacces:为部分路径生成 404 错误
- typescript - BootstrapVue 的带有延迟加载的 b-nav
- mongodb - 如何将 MongoDB 与 SharePoint 列表连接?