Python Chrome handless(无界面浏览器,add_argument 支持哪些参数,替代 PhantomJS)

简介: Python Chrome handless(无界面浏览器,add_argument 支持哪些参数,替代 PhantomJS)
  • Chrome handless 模式,Google 针对 Chrome 浏览器 59版 新增的一种模式,可以让你不打开 UI 界面的情况下使用 Chrome 浏览器,所以运行效果与 Chrome 保持完美一致。
  • 系统要求:
1、Chrome 版本要求
    Unix/Linux 系统要求 chrome >= 59
    Windows 系统需要 chrome >= 60
2、Python 版本 >= 3.6
3、Selenium 版本 >= 3.4
4、ChromeDriver 版本 >= 2.31
  • ChromeOptions 常用配置
# 配置对象
options = webdriver.ChromeOptions()
options.add_experimental_option("excludeSwitches", ["enable-automation"])  # 禁止浏览器被监控提示
options.add_experimental_option('detach', True) # 不自动关闭浏览器
options.add_argument('--headless') # 设置无窗口模式
options.add_argument('--disable-gpu') # 禁用gpu加速
options.add_argument("--user-agent='  '")  # 设置请求头user-agent
options.add_argument('--start-maximized')  # 设置窗口最大化
options.add_argument('--window-size=200,200')  # 设置窗口大小
options.add_argument('--incognito')  # 无痕模式
options.add_argument('--hide-scrollbars')  # 隐藏滚动条
options.add_argument('--disable-javascript')  # 禁用js
options.add_argument('--blink-settings=imagesEnabled=false')  # 不加载图片(拦截图片)
  • Chrome handless(无界面浏览器) 使用(直接拷贝就能用,初始化格式固定的)
# 导入 selenium
from selenium import webdriver
# 如果需要指定路径,但是路径在新版本中被重构到 Service 函数中了
from selenium.webdriver.chrome.service import Service
# 配置对象
from selenium.webdriver.chrome.options import Options
# 导入常量对象(可以点进去看看,其实也可以手写)
# from selenium.webdriver.common.by import By
# 导入 定时器
from time import sleep
# 浏览器封装
def share_browser ():
  # 浏览器驱动路径(可以是下载的驱动,也可以直接使用电脑上 Chrome 浏览器的驱动,找到路径就行)
  # win_path = 'chromedriver.exe' 
  mac_path = 'chromedriver'
  # 配置对象
  options = Options()
  # options = webdriver.ChromeOptions() # 也可以这样创建 options 对象
  # options.add_experimental_option('detach', True) # 不自动关闭浏览器
  options.add_argument('--headless') # 设置无窗口模式
  options.add_argument('--disable-gpu') # 禁用gpu加速
  # 创建浏览器
  service = Service(mac_path)
  browser = webdriver.Chrome(service=service, options=options)
  # 返回
  return browser
# 创建浏览器
browser = share_browser()
# 打开指定网址
browser.get('https://www.baidu.com')
# 保存快照
browser.save_screenshot('baidu.png')
# 睡眠
sleep(2)
# 退出
browser.quit()


相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
相关文章
|
2月前
|
分布式计算 MaxCompute 对象存储
|
3月前
|
数据采集 Web App开发 JavaScript
爬虫策略规避:Python爬虫的浏览器自动化
爬虫策略规避:Python爬虫的浏览器自动化
|
4月前
|
Web App开发 SQL 数据库
使用 Python 解析火狐浏览器的 SQLite3 数据库
本文介绍如何使用 Python 解析火狐浏览器的 SQLite3 数据库,包括书签、历史记录和下载记录等。通过安装 Python 和 SQLite3,定位火狐数据库文件路径,编写 Python 脚本连接数据库并执行 SQL 查询,最终输出最近访问的网站历史记录。
72 4
|
4月前
|
Web App开发 XML JavaScript
Python 操作浏览器:让 Python 和 Web 世界合二为一
Python 操作浏览器:让 Python 和 Web 世界合二为一
112 3
|
4月前
|
数据可视化 测试技术 Linux
基于Python后端构建多种不同的系统终端界面研究
【10月更文挑战第10天】本研究探讨了利用 Python 后端技术构建多样化系统终端界面的方法,涵盖命令行界面(CLI)、图形用户界面(GUI)及 Web 界面。通过分析各种界面的特点、适用场景及关键技术,展示了如何使用 Python 标准库和第三方库(如 `argparse`、`click`、`Tkinter` 和 `PyQt`)实现高效、灵活的界面设计。旨在提升用户体验并满足不同应用场景的需求。
|
4月前
|
Java 程序员 C++
【Python】链式、嵌套调用、递归、函数栈帧、参数默认值和关键字参数
【Python】链式、嵌套调用、递归、函数栈帧、参数默认值和关键字参数
49 0
【Python】链式、嵌套调用、递归、函数栈帧、参数默认值和关键字参数
|
4月前
|
存储 C++ Python
[oeasy]python037_ print函数参数_sep分隔符_separator
本文介绍了Python中`print`函数的`sep`参数,即分隔符。通过回顾上文内容,解释了类型与`type`的概念,并强调了参数类型的重要性。文章详细探讨了`print`函数如何使用`sep`参数来分隔输出值,默认分隔符为空格(序号32)。还讨论了如何修改分隔符为其他字符,如冒号,并解释了为何反斜杠需要使用双反斜杠表示。最后,文章追溯了`sep`名称的由来,以及相关词汇的历史背景,如盎格鲁-萨克逊人的武器和语言。
140 0
|
4月前
|
存储 算法 API
Python学习五:函数、参数(必选、可选、可变)、变量、lambda表达式、内置函数总结、案例
这篇文章是关于Python函数、参数、变量、lambda表达式、内置函数的详细总结,包含了基础知识点和相关作业练习。
63 0
|
29天前
|
Web App开发 人工智能 JSON
AutoMouser:AI Chrome扩展程序,实时跟踪用户的浏览器操作,自动生成自动化操作脚本
AutoMouser是一款Chrome扩展程序,能够实时跟踪用户交互行为,并基于OpenAI的GPT模型自动生成Selenium测试代码,简化自动化测试流程。
138 17
AutoMouser:AI Chrome扩展程序,实时跟踪用户的浏览器操作,自动生成自动化操作脚本
|
5月前
|
Web App开发 数据采集 存储
WebDriver与Chrome DevTools Protocol:如何在浏览器自动化中提升效率
本文探讨了如何利用Chrome DevTools Protocol (CDP) 与 Selenium WebDriver 提升浏览器自动化效率,结合代理IP技术高效采集微博数据。通过CDP,开发者可直接操作浏览器底层功能,如网络拦截、性能分析等,增强控制精度。示例代码展示了如何设置代理IP、cookie及user-agent来模拟真实用户行为,提高数据抓取成功率与稳定性。适用于需要频繁抓取互联网数据的应用场景。
708 3
WebDriver与Chrome DevTools Protocol:如何在浏览器自动化中提升效率