首页 > 其他分享 >一键自动化博客发布工具,chrome和firfox详细配置

一键自动化博客发布工具,chrome和firfox详细配置

时间:2024-05-04 13:12:11浏览次数:15  
标签:浏览器 service chrome 一键 driver firfox firefox selenium

blog-auto-publishing-tools博客自动发布工具现在已经可以同时支持chrome和firefox了。

很多小伙伴可能对于如何进行配置和启动不是很了解,今天带给大家一个详细的保姆教程,只需要跟着我的步骤一步来就可以无障碍启动了。

前提条件

前提条件当然是先下载 blog-auto-publishing-tools这个博客自动发布工具,地址如下:https://github.com/ddean2009/blog-auto-publishing-tools

chrome配置

现在的主流浏览器肯定是chrome无疑了。所以我们首先聊一聊如何实现对chrome浏览器的支持。

使用selenium正常启动chrome浏览器

selenium本身就自带对chrome的支持,所以在selenium中使用chrome也是一个非常简单的事情。

  1. 首先你需要下载安装chrome。

  2. 然后使用pip来安装selenium:

pip install selenium
  1. 你需要从ChromeDriver下载页面下载与你的Chrome浏览器版本相对应的ChromeDriver。确保你下载的是与你的操作系统和Chrome版本相匹配的版本。
  2. 然后就可以在代码中使用了:
from selenium import webdriver  
  
# 指定ChromeDriver的路径  
driver_path = '/path/to/your/chromedriver'  # 替换为你的ChromeDriver路径  
  
# 创建一个新的Chrome浏览器实例  
driver = webdriver.Chrome(executable_path=driver_path)  
  
# 访问一个网站  
driver.get('http://www.example.com')  
  
# ... 在这里执行你的Selenium操作 ...  
  
# 关闭浏览器  
driver.quit()

简单是简单,但是这样做的缺点是每次都需要下载一个新的,内置的chrome浏览器,所以在国内的网络环境下,很多人以为是程序被卡死了。

实际上并不是,只是网络慢而已。

事实上,我们已经已经在使用chrome了,为什么不能attach到现有的chrome上运行selenium呢?

使用selenium连接到现有的chrome浏览器

这是blog-auto-publishing-tools正在做事情。

优点: 这样做的优点有两个。

第一就是不需要重新下载chrome浏览器。

第二就是可以借助现有浏览器的登录态,不需要每次都在程序中重新登录。因为有些网站的登录条件是很复杂的。比如腾讯云,你需要时不时的进行手机扫码才能登录。

我们的步骤如下:

  1. 下载并安装 Chrome
  2. 下载chrome Driver Chrome Driver
  3. chrome 以debug模式启动

如果是mac电脑,那么可以先给chrome设置一个alias

alias chrome="/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome"

以debug模式启动

chrome --remote-debugging-port=9222

!!!! 注意!!!
chrome启动之后,一定要新开一个空白tab页,或者随便打开一个网站,否则后面的selenium可能会出现假死的情况

在命令行你会看到类似下面的内容:

DevTools listening on ws://127.0.0.1:9222/devtools/browser/d4d05dd2-5b74-4380-b02d-12baa123445

这行ws很重要,我们把它记下来。

如果你是windows,那么在chrome的快捷方式后面加上 --remote-debugging-port=9222 参数。

image-20240503190824756

启动chrome,输入chrome://version 检测 --remote-debugging-port=9222 是否出现在页面上。

image-20240503190854471

然后输入:

http://localhost:9222/json/version

获得 webSocketDebuggerUrl:

image-20240503190939248

  1. 修改配置文件

修改config/common.yaml 里面的内容:

# chrome driver地址
service_location: /Users/wayne/Downloads/work/chromedriver-mac-arm64/chromedriver
# chrome调试地址
debugger_address: localhost:9222/devtools/browser/4aab2b8b-112c-48a3-ba38-12baa123445

把service_location和debugger_address修改为你自己本机的配置。

你也可以使用简单版本的 debugger_address: localhost:9222

我在windows环境下测试过是可以连接的。

在mac环境下有时可以连接,有时候不能连接,大家可以自行测试。

这样,使用下面的代码就可以连接到现有的chrome了:

    # 启动浏览器驱动服务
    service = selenium.webdriver.chrome.service.Service(common_config['service_location'])
    # Chrome 的调试地址
    debugger_address = common_config['debugger_address']
    # 创建Chrome选项,重用现有的浏览器实例
    options = selenium.webdriver.chrome.options.Options()
    options.page_load_strategy = 'normal'  # 设置页面加载策略为'normal' 默认值, 等待所有资源下载,
    options.add_experimental_option('debuggerAddress', debugger_address)
    # 使用服务和选项初始化WebDriver
    driver = webdriver.Chrome(service=service, options=options)

firefox配置

除了chrome之外,用的最多的应该就是firefox了。

所以blog-auto-publishing-tools也提供了对firefox的支持。

使用selenium正常启动firefox浏览器

要常规使用firefox,你需要下面几部:

  1. 下载并安装 Firefox

  2. 下载geckodriver 驱动.下载与你的Firefox浏览器版本相对应的geckodriver。确保你下载的是与你的操作系统和Firefox版本相匹配的版本。

  3. 在代码中使用:

from selenium import webdriver  
  
# 指定geckodriver的路径  
driver_path = '/path/to/your/geckodriver'  # 替换为你的geckodriver路径  
  
# 创建一个新的Firefox浏览器实例  
driver = webdriver.Firefox(executable_path=driver_path)  
  
# 访问一个网站  
driver.get('http://www.example.com')  
  
# ... 在这里执行你的Selenium操作 ...  
  
# 关闭浏览器  
driver.quit()

同样的,因为网络问题,所以这种方式在国内的环境中会很慢。

我们看看另外一种方式。

使用selenium连接到现有的firefox浏览器

  1. 下载并安装 Firefox

  2. 下载geckodriver 驱动.下载与你的Firefox浏览器版本相对应的geckodriver。确保你下载的是与你的操作系统和Firefox版本相匹配的版本。

  3. 在firefox的启动命令之后加上: -marionette -start-debugger-server 2828

image-20240504120509315

注意,这里的端口一定要是2828,不能自定义。

这时候你如果打开firefox,就会看到导航栏变成了红色,表示你已经启动了远程调试模式。

image-20240504120607831

输入about:config

可以看到marionette.port的端口就是2828。

  1. 修改配置文件

修改config/common.yaml 里面的内容:

# firefox driver地址
service_location: "D:\\downloads\\geckodriver-v0.34.0-win32\\geckodriver.exe"

把driver_type修改为firefox。

#driver_type: "chrome"
driver_type: "firefox"

接下来就可以在程序中使用了:

 # 启动浏览器驱动服务
    service = selenium.webdriver.firefox.service.Service(common_config['service_location'],
                                                         service_args=['--marionette-port', '2828',
                                                                       '--connect-existing'])
    # 创建firefox选项,重用现有的浏览器实例
    options = selenium.webdriver.firefox.options.Options()
    options.page_load_strategy = 'normal'  # 设置页面加载策略为'normal' 默认值, 等待所有资源下载,
    driver = webdriver.Firefox(service=service, options=options)

总结

我在mac上测试了chrome,在windows上同时测试了chrome和firefox。都是可以用的。大家有问题可以私信我。

点我查看更多精彩内容:www.flydean.com

标签:浏览器,service,chrome,一键,driver,firfox,firefox,selenium
From: https://www.cnblogs.com/flydean/p/18172205

相关文章

  • 本地化部署hoppscotch —— 使用docker compose一键部署 + https支持
    一、前言研究了好久,终于完成了hoppscotch本地一键部署,并支持https。hoppscotch的介绍这里就不做过多描述,网络上非常多,这里先放几张使用效果1、api界面 2、管理界面 2、部署效果:a.使用脚本,./create_and_start.sh(后面会提供),需要传入本机ip(能访问到的),可用的smtpurl(建议使......
  • Mybatis逆向工程的2种方法,一键高效快速生成Pojo、Mapper、XML,摆脱大量重复开发
    一、写在开头最近一直在更新《Java成长计划》这个专栏,主要是Java全流程学习的一个记录,目前已经更新到Java并发多线程部分,后续会继续更新;而今天准备开设一个全新的专栏《EfficientFarm》。EfficientFarm:高效农场,期许软件开发工作能够像很多国外的高效农场一般机械化,自动化。拿来......
  • html,js代码编译,加密,代码一键打包软件,HTML转exe程序
    个人软件注意杀毒软件会报毒,,放行便可小尘web打包程序可以将整个web工程项目打包成一个exe程序运行不是打包浏览器内核应用,是代码打包软件,打包后和原来一样放在nginx类软件里运行下载地址https://download.csdn.net/download/rllmqe/88789653链接:https://pan.baidu.com/s/1HTql......
  • Chrome您的连接不是私密连接解决办法(转)
    原文:https://www.cnblogs.com/taoni/p/15860559.html您的连接不是私密连接攻击者可能会试图从x.x.x.x窃取您的信息(例如:密码、通讯内容或信用卡信息)。了解详情NET::ERR_CERT_INVALID将您访问的部分网页的网址、有限的系统信息以及部分网页内容发送给Google,以帮助我们提升Ch......
  • Chrome插件(扩展)开发全攻略 写在前面 我
    Chrome插件(扩展)开发全攻略 写在前面我花了将近一个多月的时间断断续续写下这篇博文,并精心写下完整demo,写博客的辛苦大家懂的,所以转载务必保留出处。本文所有涉及到的大部分代码均在这个demo里面:https://github.com/sxei/chrome-plugin-demo ,大家可以直接下载下来运行。......
  • Chrome插件(Extensions)开发攻略
    Chrome插件(Extensions)开发攻略 本文将从个人经验出发,讲述为什么需要Chrome插件,如何开发,如何调试,到哪里找资料,会遇到怎样的问题以及如何解决等,同时给出一个个人认为的比较典型的例子——获取网页内容,和服务器交互,再把信息反馈给用户。OK,准备开始吧,我尽量把文章写得好看点,以免......
  • Chrome插件开发1234
    Chrome插件开发(一) 作为一个开发人员,我们在日常工作中肯定会用到Chrome浏览器,同时也会用到谷歌的一些插件,比如Tampermonkey,AdBlock等,在之前的文章本人还用过Tampermonkey插件,好使又好玩,传送门 https://www.cnblogs.com/weijiutao/p/11677932.html,https://www.cnblogs.......
  • 简析智慧灯杆一键告警功能的实用场景
    随着城市人口持续增长,城区面积持续扩大,社会公共安全面临的挑战也与日俱增。智慧路灯杆是一种兼具智能化和多功能的新型物联网基础设施,通过搭载一键告警对讲盒,能够大大丰富安防及报警求助资源,实现对事件现场的精确定位、实时音视频采集传输、人员快速调遣等功能,对提升城市的安全性......
  • HTML一键打包APK工具一机一码功能更新 - 增强安全性
    HTML一键打包APK工具在上一个版本更新的时候,添加了一机一码功能,该功能上线以来,受到许多用户的喜爱。它可以方便的让APK只能在已经授权的手机上使用,能有效地保护APK作品,防止一些没有授权的传播。如果想要向用户收费或者限制使用范围,这个功能就非常适合。之前版本中,在HTML一键打包A......
  • 一键启动的AI离线知识库,无需复杂环境依赖,小白都能上手了
    https://www.cnblogs.com/xuzeyu/p/18161896 简介在人工智能技术飞速发展的今天,我们经常面临一个挑战:如何快速、简便地部署和使用AI技术?AntSK项目,一个开源的AI知识库和智能体,就是为了解决这一问题而诞生的。现在,我们自豪地宣布,AntSK已经实现了无需复杂部署的一键启动功能,让每......