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

2024-05-05 12:12

本文主要是介绍一键自动化博客发布工具,chrome和firfox详细配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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)# 使用服务和选项初始化WebDriverdriver = 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

这篇关于一键自动化博客发布工具,chrome和firfox详细配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/961692

相关文章

Python+FFmpeg实现视频自动化处理的完整指南

《Python+FFmpeg实现视频自动化处理的完整指南》本文总结了一套在Python中使用subprocess.run调用FFmpeg进行视频自动化处理的解决方案,涵盖了跨平台硬件加速、中间素材处理... 目录一、 跨平台硬件加速:统一接口设计1. 核心映射逻辑2. python 实现代码二、 中间素材处

Spring配置扩展之JavaConfig的使用小结

《Spring配置扩展之JavaConfig的使用小结》JavaConfig是Spring框架中基于纯Java代码的配置方式,用于替代传统的XML配置,通过注解(如@Bean)定义Spring容器的组... 目录JavaConfig 的概念什么是JavaConfig?为什么使用 JavaConfig?Jav

Spring Boot Interceptor的原理、配置、顺序控制及与Filter的关键区别对比分析

《SpringBootInterceptor的原理、配置、顺序控制及与Filter的关键区别对比分析》本文主要介绍了SpringBoot中的拦截器(Interceptor)及其与过滤器(Filt... 目录前言一、核心功能二、拦截器的实现2.1 定义自定义拦截器2.2 注册拦截器三、多拦截器的执行顺序四、过

Java使用Spire.Doc for Java实现Word自动化插入图片

《Java使用Spire.DocforJava实现Word自动化插入图片》在日常工作中,Word文档是不可或缺的工具,而图片作为信息传达的重要载体,其在文档中的插入与布局显得尤为关键,下面我们就来... 目录1. Spire.Doc for Java库介绍与安装2. 使用特定的环绕方式插入图片3. 在指定位

springboot的controller中如何获取applicatim.yml的配置值

《springboot的controller中如何获取applicatim.yml的配置值》本文介绍了在SpringBoot的Controller中获取application.yml配置值的四种方式,... 目录1. 使用@Value注解(最常用)application.yml 配置Controller 中

springboot中配置logback-spring.xml的方法

《springboot中配置logback-spring.xml的方法》文章介绍了如何在SpringBoot项目中配置logback-spring.xml文件来进行日志管理,包括如何定义日志输出方式、... 目录一、在src/main/resources目录下,也就是在classpath路径下创建logba

SQL Server中行转列方法详细讲解

《SQLServer中行转列方法详细讲解》SQL行转列、列转行可以帮助我们更方便地处理数据,生成需要的报表和结果集,:本文主要介绍SQLServer中行转列方法的相关资料,需要的朋友可以参考下... 目录前言一、为什么需要行转列二、行转列的基本概念三、使用PIVOT运算符进行行转列1.创建示例数据表并插入数

Python + Streamlit项目部署方案超详细教程(非Docker版)

《Python+Streamlit项目部署方案超详细教程(非Docker版)》Streamlit是一款强大的Python框架,专为机器学习及数据可视化打造,:本文主要介绍Python+St... 目录一、针对 Alibaba Cloud linux/Centos 系统的完整部署方案1. 服务器基础配置(阿里

Python+wxPython开发一个文件属性比对工具

《Python+wxPython开发一个文件属性比对工具》在日常的文件管理工作中,我们经常会遇到同一个文件存在多个版本,或者需要验证备份文件与源文件是否一致,下面我们就来看看如何使用wxPython模... 目录引言项目背景与需求应用场景核心需求运行结果技术选型程序设计界面布局核心功能模块关键代码解析文件大

C++多线程开发环境配置方法

《C++多线程开发环境配置方法》文章详细介绍了如何在Windows上安装MinGW-w64和VSCode,并配置环境变量和编译任务,使用VSCode创建一个C++多线程测试项目,并通过配置tasks.... 目录下载安装 MinGW-w64下载安装VS code创建测试项目配置编译任务创建 tasks.js