首页 > 自考资讯 > 自考知识

自动化发布平台,一键搭建博客

头条共创 2024-06-27

一键自动化博客发布工具,用过的人都说好(oschina篇)

oschina 和segmentfault一样,界面非常清新。

界面除了需要的标题和内容外,还有文章相册、宣传区等几个选项。

让我们看看如何使用blog-auto-publishing-tools 自动发布到oschina。

前提条件

当然,作为前提,你必须先下载blog-auto-publishing-tools博客自动发布工具。地址是:https://github.com/ddean2009/blog-auto-publishing-tools

oschina的实现

现在我们来一步步看看oschina是如何实现自动化的。

oschina的配置文件

oschina除了标题和内容外,还需要文章相册和推广区。

da9f27878190417f93b826fc48a823b4~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720095571&x-signature=gXlUWcPASizygERJdPps%2F0N6ET4%3Dimage-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的博客发布页面。

填充文章内容

首先我们看一下页面上的文章内容信息。

b3c80bffece24eedb0cfbd20224b0a47~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720095571&x-signature=Kv6BsvsVQ61khsWja5L56THcKk8%3Dimage-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来模拟系统的粘贴操作。

填充文章的标题

标题部分比较简单。我有一个姓名字段。

ec6609dd98f7476ea5209c45dfaf1478~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720095571&x-signature=MrO%2FR5m3KH%2FESwrulVF1smTYlTs%3Dimage-20240506232051687

所以你可以这样使用它:

# 文章标题title=driver.find_element(By.NAME, 'title') title.clear() title.send_keys(common_config['title']) time.sleep(2) # 等待3 秒

文章专辑

然后,当您点击“发布文章”按钮,会出现一个弹出框。

现在您需要填写文章相册。

7d9a440970cf4384aa60afb8a976f7cb~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720095571&x-signature=h8dIl6FL3YnVmJzwT2lJPlcEoxc%3Dimage-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

版权声明:本文由今日头条转载,如有侵犯您的版权,请联系本站编辑删除。

猜你喜欢