V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
daxin945
V2EX  ›  Python

不使用无头浏览器, python3 在 Linux 环境下如何对网页进行截图?

  •  
  •   daxin945 · 225 天前 · 2925 次点击
    这是一个创建于 225 天前的主题,其中的信息可能已经有所发展或是发生改变。
    46 条回复    2023-10-03 22:03:45 +08:00
    deorth
        1
    deorth  
       225 天前 via Android   ❤️ 5
    那就使用有头浏览器
    SenLief
        2
    SenLief  
       225 天前 via iPhone
    没看懂?是已经打开的浏览器截图?
    specture
        3
    specture  
       225 天前   ❤️ 1
    不适用浏览器难道自己解析 html,css,js?
    specture
        4
    specture  
       225 天前
    要么就用远程浏览器 RBI?
    youngce
        5
    youngce  
       225 天前
    Linux 装个桌面,然后再装个浏览器,打开浏览器,然后 python 截取系统屏幕🤣类似 rpa 吧
    danbai
        6
    danbai  
       225 天前
    能问下为啥不使用无头浏览器呢
    ysc3839
        7
    ysc3839  
       225 天前 via Android   ❤️ 1
    那问题就变成定义问题了,“浏览器”具体的定义是什么?自己实现一个解析渲染 Web 的程序算不算“浏览器”?
    micookie
        8
    micookie  
       225 天前
    可以使用 PhantomJS ,实际上还是使用的无头浏览器。
    cy18
        9
    cy18  
       225 天前
    这居然是个哲学问题:“什么是浏览器”?
    Yadomin
        10
    Yadomin  
       225 天前 via Android
    用 python 写个 html/css parser + render ,但那不就是无头浏览器了🌚
    matepi
        11
    matepi  
       225 天前   ❤️ 2
    能发送返回 http 就是浏览器

    能解析 html 就是浏览器

    能 render 页面就是浏览器

    能执行 js 等动态脚本才是浏览器

    来画个九宫格?
    cxh116
        12
    cxh116  
       225 天前 via Android
    给钱给别人,调用付费 api 截。
    jetflyL
        13
    jetflyL  
       225 天前
    之前用过一个 java 的库,就是可以解析 html ,css 文件生成图片的,当然有些没有浏览器渲染这么完美。python 的不知道有没有,要是有类似的可以直接请求网页,在渲染出来
    vastwelkin
        14
    vastwelkin  
       225 天前 via Android
    @deorth 正解
    0o0O0o0O0o
        15
    0o0O0o0O0o  
       225 天前 via iPhone
    那就 xvfb+有头浏览器
    shijingshijing
        16
    shijingshijing  
       225 天前
    直接手搓 v8 引擎吧
    wonderfulcxm
        17
    wonderfulcxm  
       225 天前 via iPhone
    有些网站提供截图的 API 服务,你传参调用就行了
    nowheremanx
        18
    nowheremanx  
       225 天前
    这里建议您用 python 重新写一个浏览器。
    hazardous
        19
    hazardous  
       225 天前
    搭个 splash 服务,甭管它内部怎么实现,从我们看来就只是个 API
    getcharch
        20
    getcharch  
       225 天前   ❤️ 1
    hefish
        21
    hefish  
       225 天前
    不想吃东西,但是我现在很饿,大家有没有好的办法?对了,必须用 python 。
    JingW
        22
    JingW  
       225 天前
    可以人肉解析 HTML+CSS+JS ,然后画出来拍照上传。
    louis16s
        23
    louis16s  
       225 天前   ❤️ 1
    playwright 这个库?
    tolbkni
        24
    tolbkni  
       225 天前
    @getcharch 有没有可能这个也依赖无头浏览器
    Nich0la5
        25
    Nich0la5  
       225 天前
    为什么不用无头浏览器,这应该是实现路径而不是本源问题
    bigbigpark
        26
    bigbigpark  
       225 天前   ❤️ 1
    wkhtmltoimage 可以了解一下这个
    jones2000
        27
    jones2000  
       225 天前
    CEF 搞一个不就行了。 加载完成屏幕截图。
    daxin945
        28
    daxin945  
    OP
       225 天前
    @danbai 我现在对网页截图用的 selenium 以及火狐的无头浏览器,但是火狐会在使用的时候对境外 IP 发起请求。用户那边对网络要求严格,所以要对功能调整下。
    daxin945
        29
    daxin945  
    OP
       225 天前
    @micookie 感谢您的回复 我也考虑过 只不过 selenium 的新版本不太支持 所以就没动手 不过现在看来需要试试了
    daxin945
        30
    daxin945  
    OP
       225 天前
    @jones2000 感谢您分享的思路 我去学习下
    daxin945
        31
    daxin945  
    OP
       225 天前
    @hefish 您的讽刺很到位 祝您工作顺利
    lkwfive
        32
    lkwfive  
       225 天前
    @daxin945 换个思路,拦截 境外 IP 发起的请求?
    daxin945
        33
    daxin945  
    OP
       225 天前
    @lkwfive 服务器上有监控软件 拦截了也能看到 QAQ
    makerbi
        34
    makerbi  
       225 天前   ❤️ 1
    用 playwright 控制,所有请求都可以拦截
    danbai
        35
    danbai  
       225 天前
    @daxin945 #28 这个根本是网络的问题,你完全可以用其他的 Chromium 浏览器或者在浏览器外面套一层代理拦截境外请求。
    Masoud2023
        36
    Masoud2023  
       225 天前
    chromium 呢? chromium 没谷歌遥测吧,应该没请求吧
    daxin945
        37
    daxin945  
    OP
       225 天前
    @Masoud2023 服务器是国产服务器 arm 架构的 QAQ
    daxin945
        38
    daxin945  
    OP
       225 天前
    @danbai 感谢您的思路 我也在尝试拦截 但是就怕拦截的不干净 还在测试
    Masoud2023
        39
    Masoud2023  
       225 天前
    @daxin945 #37 arm 有什么问题吗,chromium 有 aarch64 build 啊
    Masoud2023
        40
    Masoud2023  
       225 天前
    你再不信任这玩意,那就把他 pull 下来自己 review ,把遥测代码全删了,编译打包
    daxin945
        41
    daxin945  
    OP
       225 天前
    @Masoud2023 那我做调研的时候 肯定是失误了 没看到 chromium 的 aarch64 build 我再去搜搜 感谢您的回复
    Masoud2023
        42
    Masoud2023  
       225 天前   ❤️ 1
    nevermoreluo
        43
    nevermoreluo  
       225 天前   ❤️ 1
    怕拦不干净的话 要不参考下 gfwlist, 没想到这玩意儿还有反向应用

    https://github.com/gfwlist/gfwlist
    https://github.com/breakwa11/gfw_whitelist
    cbythe434
        44
    cbythe434  
       225 天前
    网页截图必须渲染吧,能渲染网页的都叫浏览器,所以你想问啥。。。
    yuanchao
        45
    yuanchao  
       218 天前   ❤️ 1
    可以用第三方的,比如这家还不错 https://www.uscreenshot.com/
    lete
        46
    lete  
       207 天前
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2826 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 15:08 · PVG 23:08 · LAX 08:08 · JFK 11:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.