安装:npm i puppeteer
就是自动控制浏览器进行点击,获取元素等操作。
import puppeteer from "puppeteer";
// puppeteer 每个操作都是异步的
const input = process.argv[2]
// 默认无头模式,浏览器在后台操作
const browser = await puppeteer.launch({
headless: false,
executablePath: 'C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe' // 使用浏览器的路径(默认为Chrome)
})
// 开启页面
const page = await browser.newPage()
// 进行跳转
await page.setViewport({width: 1920, height: 1000})
await page.goto('https://www.zhihu.com/')
// 获取元素
await page.waitForSelector('.css-16vu25q')
const elements = await page.$$('.css-16vu25q .GlobalWriteV2-navTop .GlobalWriteV2-topTitle')
const collectContent = async () => {
const titleList = []
await page.waitForSelector('. css-0')
const elements = await page.$$('. css-0 .css-1rs9lm3 .css-1o7uqnr')
for await (const el of elements) {
const prop = await el.getProperty('innerText')
const text = await prop.jsonValue()
titleList.push(text)
}
console.log(titleList)
}
for await (const el of elements) {
const prop = await el.getProperty('innerText')
const text = await prop.jsonValue()
console.log(text)
if (text === (input || '回答问题')) {
await el.click()
collectContent()
break
}
}