【发布时间】:2021-05-27 06:40:18
【问题描述】:
所以我想抓取网站的一些标题并在我的网站上使用它们(使用降价文件管理)。 该脚本有效并且输出在控制台中看起来很好。但我无法将“For循环”的值写入降价文件。
已尝试使用整个对象并将变量名称( ${list} )放在降价中,还尝试将输出的单个节点写入降价( ${firstItem} )。 一直在搜索'write result javascript to markdown'、'print object to markdown'、'convert json to markdown',查看了字符串,并尝试了几个相关术语,但到目前为止没有结果。
如果您有提示或知道解决此问题的方法,非常感谢分享。
const { chromium } = require('playwright');
const fs = require('fs');
(async () => {
const browser = await chromium.launch({ headless: true, slowMo: 250 });
const context = await browser.newContext();
const page90 = await browser.newPage();
await page90.goto("https://books.toscrape.com/");
const listcontent = await page90.evaluate(() => {
const data = [];
const books = document.querySelectorAll(".product_pod");
books.forEach((book) => {
let title = book.querySelector('.thumbnail').getAttribute("alt");
let url = book.querySelector('a').getAttribute("href");
data.push({
title,
url,
});
});
return data;
});
// console.log(listcontent);
// listcontent.forEach(item => console.log(item))
// [listcontent].forEach(console.log, console);
// [listcontent].forEach(console.log.bind(console));
// let list = {};
for (const {title: n, url: f} of listcontent) {
console.log('[' + n + '](' + f + ')');
// return list;
}
// let firstItem = listcontent[0]
// lists as json
console.log(listcontent)
// for (const property of listcontent) {
// console.log(`${property}: ${url[property]}`);
// }
// ${firstItem}
// ${list}
// Create Markdown with frontmatter part:
fs.promises.writeFile(`file` + '.md', `---
---
`);
console.log('MD created');
await browser.close()
})()
【问题讨论】:
标签: javascript web-scraping markdown playwright