一键自动化博客发布工具,用过的人都说好(oschina篇)
oschina 和segmentfault一样,界面非常清新。
界面除了需要的标题和内容外,还有文章相册、宣传区等几个选项。
让我们看看如何使用blog-auto-publishing-tools 自动发布到oschina。
前提条件
当然,作为前提,你必须先下载blog-auto-publishing-tools博客自动发布工具。地址是:https://github.com/ddean2009/blog-auto-publishing-tools
oschina的实现
现在我们来一步步看看oschina是如何实现自动化的。
oschina的配置文件
oschina除了标题和内容外,还需要文章相册和推广区。
image-20240506225816971
所以你的配置文件可能看起来像这样:
site: https://my.oschina.net/flydean/blog/write#专辑收藏: 程序相关#推广领域:45 骆驼中文社区#44 ChatGPT #43 非结构化数据#28 大前端#27 开发技巧#10 数据库#9 云计算#17飞桨专区#16 OpenHarmony 专区#19 开源治理#46 银河麒麟专区#14 编程生活#26 软件架构#15 行业趋势#11 硬件物联网#8 人工智能大数据#39 MindSpore #35 OpenVINO 中国中文社区#42 摸鱼专区# 41 OneOS #40 华为开发者联盟#38 PostgreSQL #37 Linux 基金会开源软件大学#36 OSCTraining #34 EdgeX 中文社区#31 鲲鹏专区#30 openEuler #25 信息安全#24 运维#23 软件测试#22 网络技术#21 游戏开发#20 多媒体处理#13 DevOps #6 区块链主题: 开发技能(集合是用户创建的文章的集合)。
只需选择oschina 包含的主题之一即可。
oschina的实现代码
所有发布者都位于发布者目录中。您将在下面找到oschina 特定的发布者oschina_publisher。
首先你需要打开一个新标签页并切换到oschina的博客发布页面。
填充文章内容
首先我们看一下页面上的文章内容信息。
image-20240506230435279
可以看到oschina还使用了CodeMirror这个开源的代码编辑工具。
该工具与传统文本和textArea的不同之处在于,它的元素会根据输入动态变化,因此很难像传统页面那样直接使用send_keys来填充内容。
那么如何将内容输入CodeMirror呢?
由于send_keys 不起作用,您可以以不同的方式思考它,例如使用系统自己的复制和粘贴功能。
首先,确定内容的输入位置,粘贴需要输入的内容。
# 文章内容file_content=read_file_with_footer(common_config['content']) # 由于使用CodeMirror 时无法使用元素赋值方式,所以使用复制方式cmd_ctrl=Keys.COMMAND if sys.platform=='darwin' else CONTROL Keys 。 # 复制文本内容粘贴到剪贴板pyperclip.copy(file_content) action_chains=webdriver.ActionChains(driver) # 查找初始内容描述文本content=driver.find_element(By.XPATH, '//div[ @class='CodeMirror-code ']//span[@role='presentation']') content.click() # 模拟一次实际的粘贴操作action_chains.key_down(cmd_ctrl).send_keys('v' ).key_up(cmd_ctrl).perform() 的时候。 sleep(3) # 等待3 秒,直到找到元素。在CodeMirror-code 类中找到带有role=presentation 的跨度。
这里我们使用xpath定位。
接下来,使用ActionChains来模拟系统的粘贴操作。
填充文章的标题
标题部分比较简单。我有一个姓名字段。
image-20240506232051687
所以你可以这样使用它:
# 文章标题title=driver.find_element(By.NAME, 'title') title.clear() title.send_keys(common_config['title']) time.sleep(2) # 等待3 秒
文章专辑
然后,当您点击“发布文章”按钮,会出现一个弹出框。
现在您需要填写文章相册。
image-20240506225816971
文章相册需要两个步骤。
第一步是单击下拉框。
category_select=driver.find_element(By.XPATH, '//div[contains(@class, 'Select Dropdown Catalog-Select')]')category_select.click()这里,用xpath来查找下拉框就可以了。
第二步,从下拉框中选择对应的文章相册。
select_element=Category_select.find_element(By。有一个专辑名称列表可供选择。
推广专区
促销区域与文章相册非常相似;都是下拉框。
同样,先点击下拉框。
执行topic_select=driver.find_element(By.XPATH, '//div[contains(@class, 'Select Dropdown Group')]')topic_select.click()选择对应的推广区域。
topic_item=topic_select.find_element(By.XPATH, f'//div[contains(text(), '{topic}')]')topic_item.click()
发布按钮
最后一步是点击发布按钮是发布:
inform_button=driver.find_element(By.XPATH, '//div[contains(@class,'提交按钮启用按钮')]')confirm_button.click()
总结
这样oschina的自动发布就完成了。马苏。 oschina比较简单,没有封面上传:-)
查看更多精彩内容请点我:www.flydean.com
版权声明:本文由今日头条转载,如有侵犯您的版权,请联系本站编辑删除。