admin 发布于 01月13, 2019

基于Puppeteer实现网页自动化操作

之前在文章《你有懒癌?我有WebDriver~》中用Webdriver实现了在网页中模拟人类登录以及操作DOM的功能。其中比较难搞的就是模拟登录,以及cookie的存储和写入。文章发出后很多读者表示期待puppeteer版本。

笔者最近终于抽空用puppeteer重写了这个脚本。没想到用puppeteer处理登录和cookie要简单得多。虽然笔者现在已经用不着这个脚本了,但是作为puppeteer的入门示例还是很好的。

先解释一下puppeteer的实现原理。puppeteer的意思是操纵木偶的人。顾名思义,它使用DevTools协议来操纵浏览器( Chromium或者Chrome),从而允许开发者用它提供的API编程,用来实现Node.js爬虫程序、有/无UI的网页自动化测试、前端监控、生成PDF文件等功能。

下面就看看如何用puppeteer实现网页自动登录和操作DOM的功能。

阅读全文 »

admin 发布于 12月18, 2018

Node.js定时邮件的那些事儿

基于Exchange Web Service 和 ThinkJS 实现定时发邮件功能。

最近开发一个项目,需要在Node.js程序里实现定期给管理员发邮件的功能。

笔者平时只会在Web界面收发邮件。对邮件的原理完全不懂(可能大学教过,然而全忘了),直到要解决这个问题。请教了几个业务的同事,得到的答复是:“你需要搭一个SMTP服务,还要装一个mail agent,巴拉巴拉……” 你们在说什么,我瞎了听不见……

听起来很复杂,有没有开箱即用的服务啊?一打听还真有。同事告知我司有提供Exchange服务。笔者的内心独白:“Exchange啊,我见过,跟outlook什么关系?”。好在最后还是在同事的帮助下,冰雪聪明的笔者实现了这个功能。踩了一些坑,记录一下,顺便复习一下基础知识。

阅读全文 »

admin 发布于 11月01, 2018

一个小弹窗的故事

TLDR;

本文解决了一个问题:在浏览器中,一个URL只对应一个打开的弹窗,而且反复调出弹窗不会刷新页面。

大家在写前端应用的时候,应该都用window.open做过打开新窗口的功能。

笔者最近做的项目里,也有类似的功能。原先只需要用window.open(url)打开一个URL就可以了。有一天产品经理提需求:从网站任意地方弹窗打开一个URL,必须保证浏览器只为这个URL开一个窗口。

阅读全文 »

admin 发布于 10月29, 2018

精打细算浏览器空闲时间

有时候我们希望在浏览器中执行一些低优先级的任务,比如记录统计数据、做一些耗时的数据处理等,暂且将其称为后台任务。这些任务跟动画计算、合成帧、响应用户输入等高优先级的任务共享主线程。我们可能会面临这样的问题:正在执行的后台任务很耗时,会阻塞高优先级任务的执行,出现卡顿或者无响应的情况。

有同学提出建议:把后台任务拆分到最小的可执行块,将其放到间隔极短的setTimeout中异步执行。这样就不会阻塞主线程上其他任务啦。但是不停地将小任务发给事件循环会带来额外开销,而且实现起来也不优雅。

阅读全文 »

admin 发布于 10月21, 2018

法国里昂秋游记-10月20日

今天早上6点半就醒了,天还黑着。大概是作息改变,有点感冒,一直流鼻涕,鼻塞。喝了佳佳带的板蓝根颗粒,再喝了几杯热水,舒服多了。8点的时候天色变成深蓝,我们决定去酒店后面的公园走走。博文放弃了这次公园探险,选择了睡懒觉。

公园

两位同伴没有带跑鞋。我是跑鞋不离身的人,穿上了跑步装备,三人出发了。

公园名叫Parc de la Tête d'Or,Google Map翻译成金头公园。进入公园,发现花草上面都是露水,有种小时候放假在乡下家里的感觉。草木清香把我们包围。园林景观很棒。各种玫瑰、雏菊,还有不认识的花。有很多松树、枫树、梧桐等。公园里面小动物也很多,比如乌鸦、喜鹊、小鸽鸽、小凶许、小鸭鸭。还有小鸭鸭从我们面前踱步走过,激萌:

阅读全文 »

admin 发布于 10月21, 2018

法国里昂秋游记-10月19日

第一次来欧洲,是同事四人出差来里昂参加W3C的TPAC会议。

坐飞机

我们10月19日的凌晨12点半从北京首都国际机场出发,乘坐中国南航与KLM联运的大飞机到达荷兰阿姆斯特丹机场,然后再乘坐KLM的小飞机转机抵达里昂圣修伯利机场。

我们在大飞机上飞了10个小时,飞机提供了枕头和毯子(小枕头好评,救了我的颈椎)。每个座椅背后都有固定的小电视,存储了很多电影和音乐,还能实时查看到当前所在的位置。 睡到北京时间4点的时候,起来上厕所,喝水,看了一部《精灵旅社3》,听着电视里的音乐继续睡觉。庆幸自己带了降噪耳机,因为坐在靠近大涡轮的窗边,噪音特别大。睡觉和看电影的时候戴着耳机感受好很多。

阅读全文 »