分享一个用于自动化和爬虫的库

ysmood:项目地址: https://github.com/go-rod/rod

感谢大家的反馈优化了不少 API,因为之前的帖子已经过时了,所以在这里重新发下帖子。近期主要优化了异常处理。基本覆盖了 puppeteer 的主要功能,且支持更多便利的高级功能,比如等待 ajax,复杂代理,文件下载等。

这个库的主要原理就是利用浏览器的 devtools 可编程接口来操控浏览器。日常你可以用它自动化一些重复的页面任务,相比油猴子有更多的高级功能和 golang 强大的生态。工作上可以用它辅助集成化测试减少人力消耗。开发上可以用它简化一些传统爬虫需要费很多时间逆向工程的场景。

欢迎对自动化有兴趣的朋友加入到项目中来,这是我们的聊天室: https://discord.gg/PAaMGJw

可以通过示例文件大致了解 rod 的一些基本用法: https://github.com/go-rod/rod/blob/master/examples_test.go

下图是 rod,puppeteer 和 chromedp 实现相同输出的代码对比:

分享一个用于自动化和爬虫的库

更多对比请移步: https://github.com/go-rod/rod/tree/master/lib/examples/compare-chromedp

关于 Must 前缀: https://github.com/go-rod/rod/blob/03b1d54362f72599d3bfa465aee6b48c9c51599b/examples_test.go#L137-L186

ysmood:比如这两天我将用 rod 每小时自动置顶一次这个帖子,示例项目: https://github.com/go-rod/v2ex-example

playniuniu:非常好用 支持一下

playniuniu:另外 能否出一个详细一点的文档 直接看 example test 代码还是有点费劲

supermoonie:需要多少线程支持一个 tab ?

ysmood:@supermoonie 好奇你这个问题的出发点是啥。要在单核 CPU 上跑吗?理论上用了 Go 一个线程就够了 (green threads),不是很清楚该如何回答你这个问题。

ysmood:@playniuniu 确实,目前还没有教程,感觉最近可能会花点时间出点教程,比如录个视频或者直播之类的会对我来说负担小点,写文章比较费精力。确实是想收集大家的想法才发帖子的,有什么具体想学的吗?

playniuniu:如果有可能 能否找几个网站 从最简单的 解析网页表单 ,操作鼠标点击 到比较复杂的过滑动验证码 eval js 等等 还有比较骚操作的 hijack 请求 bypass 这些 每一个能给个案例并讲解一下 rod 实现原理就好了

蓝湖赶紧招几个算法大神吧,实在太卡了

Biwood:设计师上传了 1920*5972 像素的设计稿,打开之后几乎无法操作,跟放幻灯片似的。同样的设计稿,上传到 figma 测了一下,没有任何卡顿。看了下页面代码,蓝湖竟然用的是 DOM 渲染,figma 用的是 canvas + wasm,这技术差距有点大,赶紧优化一下吧。gaobh:都把我电脑卡出五国了哈哈

一键拷贝常用动画效果 CSS 代码

jeffjade:CSSFX,一个 CSS 动效相关的网站: https://cssfx.lovejade.cn/ 。她集合 Web 开发中常用的动画效果,如鼠标悬停、输入框获取焦点、加载、以及其他动画;不仅有展示效果,并提供一键拷贝至剪切板,以便您可以在自己的项目中使用。 备注:这个项目是基于 GitHub 的一个项目( CSSFX ?) fork 而来,…

应用宝为什么更新那么频繁?

yongliu:几乎每次打开应用宝,都会发现有更新了, 应用商店的目标不应该是默默提供应用下载管理服务的吗?结果应用宝存在感刷的比谁都勤快,看历史记录,最近一个半月就有 6 次更新... https://www.wandoujia.com/apps/257487/historynightwitch:负责这个的员工,总得恰饭啊,不能开发完了 v1.0 就离职了…

画了几天时间,初步搞了个可视化页面交互搭建

custw:体验地址 源代码 Ttttnik:厉害 不过还需要优化

大家经历过哪些面试造火箭,工作拧螺丝的经历

bbman:如题~shpkng:面试各种渲染各种数学各种复杂判定各种性能优化,实际工作切图做 UI RyanGo:我竟然经历过面试拧螺丝 工作造火箭 agriphar:大厂都是面试造火箭,工作拧螺丝 小作坊倾向于面试拧螺丝 工作造火箭