使用Python及Selenium自动发表文章 篇一:现状及技术选型
越来越多的写作者选择将自己的文章发表在多个平台上,而将文章复制、粘贴、发表的过程无疑是繁琐的,尤其对我这种同时维护着个人博客的写作者来说。因此有一个能自动将文章发表于各大平台的工具就变得格外重要。本文是使用Python及Selenium自动发表文章系列文章的第一篇。
本文的主要内容是对使用Python及Selenium自动发表文章的思路及技术选型的介绍。
现状
在日常书写博客时,许多人会将自己的博文同时发表到不同平台。这样不仅能扩大自己文章的影响力,还能使文章更为轻松地抵达受众处,使知识没有壁垒的进行传播。
而将文章复制、粘贴、发表的过程无疑是繁琐的,尤其许多写作者和我一样,有着自己独立的博客,这样就更增大了文章管理的工作量。因此有一个能自动将文章发表于各大平台并且能进行管理的工具就非常重要了。
实现思路
对于技术类博客来说,较为活跃的有思否、简书、掘金等网站。而在文章的编写时Markdown又是当前较为主流的编辑方式,一般而言我们在编写文章时,本地都会拥有一份MarKdown的底稿。另外个人博客常用的框架如Hugo,Hexo,Jekyll等都是以Markdown格式的文件作为基准的。
因此我们所需要的便是制作一个根据本地Markdown文件内容自动上传到各大平台。由于Markdown如果转换为富文本编辑器中的内容则不易保持效果。但幸运的是,目前较为主流的博客网站均支持Markdown编辑器,这就为我们无损地移植文章提供了保障。
目前主流的博客网站并没有提供发表文章的API,因此在实现中需要我们通过软件模拟登录及发表的过程。为防止网站内容被盗用和滥用,反爬虫是较大规模网站的必然选项,因此许多网站都要求用户在登录过程中输入验证码。如果需要用户手动输入验证码显然不足够自动化,而通过机器学习等方式进行识别则正确率无法保障。然而这些网站大多支持通过QQ登录,且QQ登录时不需输入验证码,因此我们在登录上首先选择通过QQ登录,后期将根据情况加入其他的登录方式。
技术选型
由于我们需要对登录过程进行模拟,且对于个人来说,文章的发表并不需要很高的性能。因此我们选择了Selenium来进行模拟操作。因为Selenium相较于抓包请求的方式相对更简单便捷且被网站封杀的概率较小。
在语言的选择方面,自然首选了包丰富且普及的Python作为编程语言,且Python为Selenium官方支持的语言之一,资料也较为全面。
后记
在之后的文章中,我将会针对各大平台逐一进行分析,并提供相应代码。在实现了基本的发表功能后,我还会将其功能丰富化,使其通过git提交信息等方式支持对文章的修改等操作。
本文首发于我的个人博客wangchucheng.com。
原文链接:https://wangchucheng.com/zh/posts/python-selenium-post-1/
本博客文章除特别声明外均为原创,采用CC BY-NC-SA 4.0 许可协议进行许可。超出CC BY-NC-SA 4.0 许可协议的使用请联系作者获得授权。