1
3dwelcome 2021-04-03 17:11:58 +08:00 1
用自定义 cef 框架导出渲染后的 render dom tree 。
首先要明确一点,一些网页用的是 js 返回数据,有些例如 twitter 是 websocket 构建页面,你不上 js 解析执行引擎,根本就没办法完整运行页面。 你总要带一个 js 和 layout 引擎处理,要不然只有看着返回的 js 代码发呆了。 |
2
dsg001 2021-04-03 17:35:25 +08:00 1
js 如果不加密,直接爬接口
不好解密就上 headless chrome |
3
EricXuu 2021-04-03 17:39:16 +08:00 via Android 1
没满足感就自己造轮子🐶
|
4
LeeReamond 2021-04-03 17:45:31 +08:00 1
爬虫爬的好,牢饭吃到饱。没什么意义,现在框架写出的网站都是前端渲染前端路由,不跑无头你能拿到什么数据。然而只要跑无头基本就获得与正常用户一样的使用体验,所以比起爬虫我倒是更关心如何反爬。。
|
5
imn1 OP @LeeReamond #4
你理解的是商业数据,我只是想把重复劳动机器自动化 例如要找不同类型车辆的图片,手动一天能存一千张已经算是忍耐力惊人了,但换成自动化工作,一万也不是问题,更何况这种搜图方式,图片都是分布在不同网站,引擎只是获取链接,并不会针对特定网站高频请求 |
6
coolair 2021-04-03 18:26:36 +08:00 via Android 1
splash
|
7
LokiSharp 2021-04-03 20:24:12 +08:00 via Android 1
直接抓接口爬,更简单了
|
8
omph 2021-04-03 20:56:32 +08:00 1
微信公众号文章,即使有永久链接,都限爬了
有什么简单的方法没? |
9
XIU2 2021-04-03 21:28:31 +08:00 1
我平时会给我经常访问的网站加上 自动无缝翻页(油猴脚本,提取下一页部分内容并插入到当前页面底部),结果接连遇到了好几个 JS 动态生成的网页,搞得我很难受。。。
网上搜了一圈,基本上只能当场渲染获得成品内容,没有什么简单的方案。。。 |
10
rekulas 2021-04-03 21:29:17 +08:00 2
@dsg001 headless 使用的也是 webdriver 和 selenium 一样
路过打击一下楼主 selenium 也并不万能,因为发现 webdriver 会向浏览器写入多项特征数据导致能够被识别,如果目标网站做了对应的防御,爬取难度会非常大,而且这些特征有些是无法移除或修改的,例如 navigator.webdriver,这点深受使用者吐槽,老外都骂 google 做了婊子还要立牌坊,不过 google 应该是为了保证网站的知情权吧 已经有开发者发起挑战,宣称将基于 chromium 开发无法检测的 webdriver 浏览器 |
11
ysmood 2021-04-03 23:05:14 +08:00 2
@rekulas 你可以挑战下 rod,看不能不能检测到是爬虫: https://go-rod.github.io/i18n/zh-CN/#/emulation?id=%e9%98%b2%e6%ad%a2%e6%9c%ba%e5%99%a8%e4%ba%ba%e6%a3%80%e6%b5%8b
headless 和 webdriver 区别还是很大的: https://go-rod.github.io/i18n/zh-CN/#/why-rod?id=selenium |
12
lqzhgood 2021-04-03 23:36:19 +08:00 1
从 headless 的被防爬角度我提个思路~
直接 chrome + 插件,就可以完全避开 webdriver 的特征了 |
13
yucongo 2021-04-03 23:45:59 +08:00 via Android 1
playwright, 爬虫新利器
|
14
LeeReamond 2021-04-04 00:08:18 +08:00 1
@ysmood 学到了一个好用的反爬方法,感谢
|
15
ysmood 2021-04-04 00:15:05 +08:00 1
@yucongo 从性能和设计可以对比下 rod 和 playwright,这里有详细说明: https://go-rod.github.io/i18n/zh-CN/#/why-rod?id=puppeteer
|
17
ysmood 2021-04-04 08:39:46 +08:00 1
@omph 有一个实验项目,我倒是很想指导一个开发者做相关的开发 https://github.com/go-rod/wayang
我个人时间比较有限,欢迎有兴趣的同学加入,很早之前就开了 issue 了 https://github.com/go-rod/rod/issues/333 |
18
imn1 OP 谢各位,暂时用 PyQt5.QWebEngineView,效果可以接受
|
19
allanpk716 2021-04-05 00:56:13 +08:00 via iPhone
@ysmood 刚用你这项目写了下爬虫,挺不错的,比之前用的其他 go 的库好用很多。
|
20
rekulas 2021-04-05 09:14:33 +08:00
|