V2EX 首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python 学习手册
Python Cookbook
Python 基础教程
Python Sites
PyPI - Python Package Index
http://www.simple-is-better.com/
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
V2EX  ›  Python

请问 selenium 包加 Chrome 开发爬虫时,如何使用 Chrome 的 headless 模式?

  •  
  •   saximi · 63 天前 · 1255 次点击
    这是一个创建于 63 天前的主题,其中的信息可能已经有所发展或是发生改变。

    用 selenium+Chrome 开发爬虫时,想使用 Chrome 的 headless 模式,用了以下的语句,结果发现无效,浏览器依然还会出现,请问正确的写法应该是什么呢?感谢!

    from selenium.webdriver.chrome.options import Options 
    
    chrome_options = Options() 
    chrome_options.add_argument('--headless') 
    chrome_options.add_argument('--disable-gpu') 
    driver =webdriver.Chrome() 
    
    19 回复  |  直到 2017-10-19 10:37:53 +08:00
        1
    kylinking   63 天前 via iPhone
    记得有 headless 的 chrome 驱动的,一个 exe 程序,不需要设置别的
        2
    icedx   63 天前
    driver =webdriver.Chrome(chrome_options=chrome_options)
        3
    qqpkat2   63 天前
    我用 J***r 根本不需要驱动什么的,直接运行,还能操作浏览器
        5
    swirling   63 天前
    2 楼正解 是你没用 options
        6
    swirling   63 天前
    self.driver = webdriver.Chrome(executable_path=chrome_driver, chrome_options=chrome_options)
    还应该有 chrome 的 binary path 和 driver 的 path 你都没加为啥也能运行。。。
        7
    jugelizi   63 天前
    @swirling 在系统环境变量里就不需要指定了
        8
    yuxianghe   62 天前
    selenium 使用 chrome 的 headless 模式: https://www.yuxianghe.net/article/50
        9
    yuxianghe   62 天前
    如果是 windows 环境,确保你的 chrome 浏览器版本是 60+,不然也不行。
    官方回答:
    Caution: Headless mode is available on Mac and Linux in Chrome 59. Windows support is coming in Chrome 60. To check what version of Chrome you have, open chrome://version.
        10
    WoodenRobot   62 天前
    用 splinter 很方便就实现了。
    pip install splinter
    ```
    from splinter import Browser
    browser = Browser('chrome', headless=True)
    ```
        11
    saximi   62 天前
    @yuxianghe 谢谢,我先学习一下这篇文章
        12
    saximi   62 天前
    @choury 谢谢,可惜无法翻墙看不了
        13
    saximi   62 天前
    @WoodenRobot 感谢,我试试看,看起来很方便
        14
    saximi   59 天前
    @WoodenRobot
    browser = Browser('chrome', headless=True)
    请问上面语句返回的 browser 对象如何与 selenium 的 webdriver 结合起来使用,使得可以操作 selenium 的 webdriver 方法返回的对象呢?
        15
    shawndev   58 天前
    你没发现你没用你的 chrome_options 吗,2 楼正解
        16
    saximi   58 天前
    @shawndev 写了下面的代码,运行时是不会出现 chrome 浏览器,但是总是在一开始还是会弹出 chromedriver.exe 的命令窗口,请问这个弹窗要如何才能取消呢?感谢!
    chrome_options = Options()
    chrome_options.add_argument('--headless')
    chrome_options.add_argument('--disable-gpu')
    driver =webdriver.Chrome(chrome_options=chrome_options)
        17
    WoodenRobot   57 天前
    @saximi 详细内容可以查看:
    Splinter 官方文档: https://splinter.readthedocs.io/en/latest/
    Splinter 中文文档: http://splinter-docs-zh-cn.readthedocs.io/zh/latest/
        18
    saximi   57 天前
    @WoodenRobot 感谢!
        19
    shawndev   56 天前
    @saximi 抱歉我的个人开发环境和工作开发环境均为 mac,mac 下无此问题。
    DigitalOcean
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   580 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.0 · 60ms · UTC 22:41 · PVG 06:41 · LAX 14:41 · JFK 17:41
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1