昨天偶然间翻到了一个叫 Chromeless 的 Github 项目,今天花了一小时看了下文档,并写了个 demo 分享出来,也许对未来做爬虫有帮助。
居于 Chrome Headless 做了一层封装,通过 api 调用操作 chrome 浏览器(点击,输入,打开网站等等)
详细:http://www.jianshu.com/p/b01de206a0d7
1. 并行执行 1000 次浏览器集成测试(Run 1000s of browser integration tests in parallel)
2. 抓取网页并自动截图
3. 编写需要真实留你浏览器环境的机器人
4. 以前 PhantomJS,NightmareJS 或 Selenium 能做的事几乎能做
没看懂?
个人理解适用场景: 适合爬虫工具
npm install chromeless
const { Chromeless } = require('chromeless');
async function run() {
const chromeless = new Chromeless();
const screenshot = await chromeless
// 打开百度
.goto('https://www.baidu.com')
// 定位name为wd的输入框,并输入chromeless
.type('chromeless', 'input[name="wd"]')
// 点击id为su 元素
.click('#su')
// 等待 id为content_left元素加载
.wait('#content_left')
// 截图
.screenshot();
// 打印本地文件路径或者S3 URL
console.log(screenshot);
// 结束
await chromeless.end()
}
run().catch(console.error.bind(console));
Chromeless 可以在本地 chrome 或者远程到 AWS Lambda 的 Chrome 上运行,上面例子在本地执行后结果,输出一张截图,打开截图确实为百度搜索页面:
win 环境:
github:
https://github.com/graphcool/chromeless
更多 API:
https://github.com/graphcool/chromeless/blob/master/docs/api.md