例如:
async function startInstagram(){
const browser=await puppeter.launch({headless:false})
const page=await browser.newPage()
await page.goto('https://www.instagram.com/50cent/')
const html=await page.waitForSelector('#mount_0_0_qQ > div > div > div.x9f619.x1n2onr6.x1ja2u2z > div > div > div > div.x78zum5.xdt5ytf.x10cihs4.x1t2pt76.x1n2onr6.x1ja2u2z > div.x9f619.xnz67gz.x78zum5.x168nmei.x13lgxp2.x5pf9jr.xo71vjh.x1uhb9sk.x1plvlek.xryxfnj.x1c4vz4f.x2lah0s.xdt5ytf.xqjyukv.x1qjc9v5.x1oa3qoh.x1qughib > div.xh8yej3.x1gryazu.x10o80wk.x14k21rp.x1porb0y.x17snn68.x6osk4m > section > main > div > ul > li:nth-child(2) > a > div > span > span')
.catch(e=>console.log(e))
console.log(`${subs.asElement()}`)
await browser.close()
}
startInstagram()
我需要从 instagramm 中的 span 标签获取文本,但 JsHandle@node 返回给我。我如何获取值?
$$('Your_Selector_Goes_here');
,以检查选择器返回的内容。page.$(), page.$$(), page.$eval(), page.$$eval()
,获取 span 标签的 text content 和 title value 将是:
async function startInstagram(){
const browser = await puppeteer.launch({headless: false});
const page = await browser.newPage();
let url = 'https://www.instagram.com/50cent/'
await page.goto(url,{ waitUntil: 'networkidle2', timeout:0});
let selector = 'li:nth-child(2) > button > span > span';
await page.waitForSelector(selector);
let subs = await page.$eval(selector, el => el.innerText);
let subs2 = await page.$eval(selector, el => el.getAttribute("title"));
console.log(subs); // text contents
console.log(subs2); // title attribute
await browser.close();
}
await startInstagram();