人有时会心血来潮,对某一领域突然很感兴趣,也许就会在 github 上把这一领域的知名项目都 star 一遍。过了一段时间,兴趣消退了,可能就会想把那些项目再 unstar 了,这样它们就不会出现在自己的 star 列表里了。如果 star 过的项目比较多,手工一个个的点的话很麻烦,这时就可以用编程的方式来实现批量操作了。
方法是进入 star 列表页面,然后打开浏览器控制台,输入下面这行代码,回车就可以了。
for await (x of $$('.js-toggler-container .starred button')) { await new Promise(r => setTimeout(r, 500)); x.click() }
原理很简单,就是用 dom 选择函数选出 starred 按钮,然后用 for await of 循环遍历,触发它们的点击事件。在每次点击之前加了一个 500 毫秒的延迟,避免操作太快的话接口报错。
用同样的方法,还可以实现批量 unfollow
for await (x of $$('.js-form-toggle-container input[value="Unfollow"]')){await new Promise(r=>setTimeout(r,500)); x.click()}
在 for await of 循环中加延时这个技术比较有用,执行一些批量操作的时候经常会用到。样板代码如下
for await (x of list) {
await new Promise(r => setTimeout(r, 500));
}
大家可以留意一下。欢迎关注微信公众号:文本魔术,了解更多。