Javascript 如何使用木偶师检测颜色?
我一直在尝试用木偶演员来检测网页上黄色的存在。任何关于如何实现这一点的见解都将不胜感激 使用getComputedStyle 通过在页面的所有元素上应用Javascript 如何使用木偶师检测颜色?,javascript,puppeteer,Javascript,Puppeteer,我一直在尝试用木偶演员来检测网页上黄色的存在。任何关于如何实现这一点的见解都将不胜感激 使用getComputedStyle 通过在页面的所有元素上应用getComputedStyle,可以获得页面的颜色: let colr=new Set(); document.body.queryselectoral('*').forEach(n=>{ colr.add(window.getComputedStyle(n.color)); colr.add(window.getComputedStyle(n
getComputedStyle
,可以获得页面的颜色:
let colr=new Set();
document.body.queryselectoral('*').forEach(n=>{
colr.add(window.getComputedStyle(n.color));
colr.add(window.getComputedStyle(n.backgroundColor));
});
colr=[…colr];
或与木偶师一起浏览本页:
//from-dom.js
const puppeter=require('puppeter-core');
module.exports=async()=>{
//我正在Docker的Chrome上运行木偶演员。请在需要的地方更换。
const browser=wait puppeter.connect({browserWSEndpoint:'ws://localhost:3000'});
const page=wait browser.newPage();
等待页面。转到('https://stackoverflow.com/q/64839035/1244884');
常量颜色=等待页面。评估(()=>{
设colr=newset();
document.body.queryselectoral('*').forEach(n=>{
colr.add(window.getComputedStyle(n.color));
colr.add(window.getComputedStyle(n.backgroundColor));
});
colr=[…colr];
返回colr;
});
等待浏览器关闭();
控制台日志(颜色);
};
node-p-e'require(“./from dom.js”)()”
返回:
[
"rgb(36,39,41)","rgba(0,0,0)",,
"rgb(250250251)","rgb(0119204)",,
"rgb(132,141,149)","rgb(60,65,70)",,
"rgb(255,255)","rgb(83,90,96),,
"rgb(12,13,14)","rgb(106,115,124)",,
"rgb(214217220)","rgb(187192196)",,
"rgb(244,128,36)","rgb(57,115,157)",,
"rgb(225236244)","rgb(0149255)",,
"rgb(239240241)","rgb(244248251)",,
"rgb(59,64,69)","rgb(27,64,114)",,
"rgb(209229241)","rgb(228230232)",,
"rgb(0,0,0)","rgb(253,247,227)",,
"rgb(6114388)","rgb(2095661)",,
"rgb(57,86,151)","rgb(239,239,239)",,
"rgb(192,45,46)","rgb(192,72,72)",,
"rgb(251,242,212)","rgb(94,186,125)",,
‘rgba(12,13,14,0.5)’
]
下面是生成的调色板:
用截图
//from-picture.js
const puppeter=require('puppeter-core');
const path=require('path');
const getColors=require('get-image-colors');
module.exports=async()=>{
//我正在Docker的Chrome上运行木偶演员。请在需要的地方更换。
const browser=wait puppeter.connect({browserWSEndpoint:'ws://localhost:3000'});
const page=wait browser.newPage();
等待页面。转到('https://stackoverflow.com/q/64839035/1244884');
等待page.screenshot({path:'screenshot.png'});
等待浏览器关闭();
const options={count:10,键入:'image/png'};
const colors=wait getColors(path.join(uu dirname,'screenshot.png'),选项);
log(colors.map(c=>c.css());
};
node-p-e'require(“./from picture.js”)()”
返回:
[
“rgb(55,76,87)”,
“rgb(250251)”,
“rgb(150161169)”,
“rgb(242133,38)”,
“rgb(92176224)”,
“rgb(203214223)”,
"rgb(157,90,31)",,
“rgb(226204156)”,
“rgb(244180132)”
]
这里是screenshot.png;)
这是调色板:
你怎么知道一种颜色是黄色的? 这个很棘手。您如何判断
rgb(6114388)
是否为±黄色
它应该可以与一个图书馆,如检查某种颜色是否是“在黄色范围内”,但我不知道如何做到这一点
我发现这篇旧帖子可能会有所帮助:
希望这足以让您开始;)