Closed bluebad closed 2 years ago
刚才又看了一下源码, index 非空的时候应该 return result[index] 返回单个 Tag 没问题, 越界的问题会被 if result: 提前避开
其实这里的 index 主要目的就是避免 js 传回太大数据, 一般只要一条, 传回几十条浪费
index==0没问题
最近被iframe的问题绊住了
iframe 貌似得折腾 DOM domain 里面的 nodeId 什么的, 我嫌麻烦一般要么跳转到 iframe 里, 要么 JS 去操作
iframe 貌似得折腾 DOM domain 里面的 nodeId 什么的, 我嫌麻烦一般要么跳转到 iframe 里, 要么 JS 去操作
跳转?用tab.goto()?频繁地用js,会让代码显得非常细碎。
你这个asyncio+cdp的框架挺好的,让Python进入到CDP,和puppeteer竞争。 只是,可以走得更远,更完善些。多借鉴puppeteer、selenium的接口。像只支持css selector,不能在html element元素上执行进一步操作等,非常不方便。
和 他们 竞争... 他们是一个团队和开源组织, 我就一个业余的...
你可以试试 pyppeteer 和 playwright, 都比我厉害多了, 前几天看了一眼 pyppeteer 才发现他们早就开始基于 browser Websocket + flatten 模式操作标签页了, 我却还在对着 tab Websocket 操作, 确实差太远了
他们的其实把各种 Domain 像你说的对象化了很方便, 这个对我来说开发成本和测试成本有点难接受, 所以只打包了几个常用的功能, 连抽象都懒得做...
JS 其实比想象中强大, 学起来也没什么成本, 作为浏览器一等公民, 我日常还是以 JS 去操作为主, 兼容性更高而且稳定, 只有特别底层的比如抓包篡改流量或者驱动层面的操作才走 CDP.
JS 只要抽象做好不会细碎的, 都摸了前端了, 避不开 Javascript 的
非 flatten 模式(也就是我现在用的) 看官方的意思打算淘汰了. 以后可能就开一个 ws, 通过不同 SessionID 来隔离流量, ichrome 这点有点落后了, 最近两周在考虑支持上它, 还得向后兼容. 一开始没认真设计抽象, 现在果然吃亏
期待。从ichrome的代码中,还是能学到不少东西的。
该方法的index参数,会通过方法内部的javascript代码模板嵌入,并且在执行过程中,忽略掉非index指定的项目,比如指定取第0个索引号的项目,那么非0索引的项目都被忽略了; 然后,从javascript代码出来后,
使用了这个判断,如果index非0,那会不会引起序号超标?