如果我查看页面源代码,我看到"异常"属性值:
class = "bma-fly flying {{= flyingStatus(it.m_status) }}
通常对我来说是:
class = "value"
加载页面后,如果我使用"检查"按钮,我会看到:
class = "bma-fly flying flying-won-team2 flying-past"
现在的问题,如果我使用 cheerio (jquery(,如何使用 Node.js 从这个"不寻常"的属性值中获取信息,但什么也没看到???例如:
request(link, function(err, resp, html) {
if (!err){
const $ = cheerio.load(html);
let info = $("div.bma-fly.flying.flying-won-team2.flying-past");
fs.writeFileSync("4.txt" , info); // nothing
}
})
此外,在页面上使用Cloudflare的反DDoS保护,可能这很重要。
因此,在页面上您有:
<div class = "bma-fly flying flying-won-team2 flying-past"> la la la </div>
<div class = "bma-fly flying flying-won-team2 flying-past"> kyrlik kyrkik </div>
<div class = "bma-fly flying flying-won-team2 flying-past"> bo bo bo </div>
<div class = "bma-fly flying flying-won-team2 flying-past"> info </div>
<div class = "bma-fly flying flying-won-team2 flying-past"> privet chelovek </div>
您希望查看所有信息。使用节点.js和木偶师的代码:
const puppeteer = require('puppeteer');
var fs = require('fs');
var link = "www. IIpuBeT Dpyr . com";
(async () => {
console.log("Get info");
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto(link);
});
const text = await page.evaluate(() => {
return [...document.body.querySelectorAll('.bma-fly.flying.flying-won-team2.flying-past')]
.map(element => element.innerText)
.join('n');
});
console.log(text);
fs.writeFileSync("nameFile.txt" , text);
browser.close();
})();
更多信息: https://github.com/GoogleChrome/puppeteer/issues/1897