python - 请问使用selenium截图为什么只能载一屏呢?
阿神
阿神 2017-04-17 13:09:07
[Python讨论组]

我想截取整个web的页面内容,但是使用selenium+python+chrome只能显示显示到哪屏截取哪屏,各位大神有什么解决方案吗?

阿神
阿神

闭关修行中......

全部回复(4)
巴扎黑

试试调用 gnome-web-photo 程序来截图?

或者你给火狐安装个 Screengrab 扩展,然后调用它来截图?

巴扎黑

PhantomJs完美截图。不需要seleninum。
http://www.du52.com/text.php?id=572

阿神

有个叫做 Conkeror 的基于Firefox内核的Emacs风格的浏览器,我基于Conkeror写了一个专门用来截图的浏览器。

特性:

  1. 通过监听8989端口接收截图请求, 并在截图完毕后作出响应
  2. 有些<object>, <embed>无法截图,该浏览器会自动注入或修改wmode参数使其可以被截取
  3. 支持 http, socks 等代理
  4. 支持往任何iframe, frame中注入 javascript 代码
  5. 支持 <object> <embed> 的筛选并截取 exactly the certain part.
  6. 可以监听所有的网络请求,并和对应的 page 关联
  7. 页面加载超时 reload page
  8. 请求响应超时 suicide
  9. 支持安装 adblockplus 插件来过滤广告

一个测试用例:

$ telnet 127.0.0.1 8989
{"url":"http://v.youku.com/v_show/id_XNzI1NTYzNDE2.html","delay": 5000,"path":"/tmp/","name":"capture"}

主要参考了 Firebug, Selenium web driver, autoproxy 等插件的源代码。
代码还比较粗糙,而且出于某些原因做了一些临时的优化。我加的代码几乎都在 modules/extras, modules/proxy 下面。

最后,链接在此:https://github.com/TheWaWaR/new-conkeror

有什么建议请提出 issue 这样我才有动力改进它: https://github.com/TheWaWaR/new-conkeror/issues

天蓬老师

selenium本质还是个外挂,它没法访问浏览器对整个页面的渲染结果,所以截图截的就是窗口的图。
要么截多张来拼图吧,或者用PhantomJS这类的无头浏览器方案。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号