使用Python自动化发布文章:(一)

用Python做有趣的事情

写在前面:坚持解决一个问题,花了两三个小时的时间终于解决了问题,最后我的自动化发布文章的功能终于实现了。

想法来源:玩自媒体的朋友都知道,如果把自己的文章同步到多个平台就需要每个平台都需要登录一下,再重新发布一下,所以我就在想能不能让Python来一键完成这些操作呢!

于是放假的这两天我就开始做了一个雏形,总算做好了。效果图如下:

首先我先在开源中国上发来进行小小的练手,为什么选这个网站呢?因为这个网站没有要求输入验证码,哈哈,验证码的问题就避免了,另外因为每个平台的验证码都不一样,所以处理机制也不一样,所以我本人也不想针对验证码来处理验证码问题。除非是大平台,我可能会单独处理一下,其它的小平台我都打算用cookie来绕过验证码问题!

实现思路

  • 使用selenium来模拟登录到开源中国平台上
  • 切换到写博客的网页中
  • 给博客中的标题,内容进行内容填充
  • 选择博客类型,这里有点麻烦,花了好大精力,通过直接修改js来更改的。
  • 提交,就可以看到内容发布

完整代码

# coding:utf-8


from selenium import webdriver
import time

user_main_url = 'https://my.oschina.net/u'

username = 'XXX'
password = 'XXX'

url = 'https://www.oschina.net/home/login?goto_page=https%3A%2F%2Fmy.oschina.net%2Fu%2F564070%2Fblog'

driver = webdriver.Firefox()
driver.get(url)

# 浏览器窗口最大化
driver.maximize_window()

driver.find_element_by_id('userMail').send_keys(username)
driver.find_element_by_id('userPassword').send_keys(password)
driver.find_element_by_xpath('//*[@id="account_login"]/form/div/div[5]/button').click()


# 进入主页
while True:
    # 判断是不是在个人主页中。
    if user_main_url in driver.current_url:
        break
    else:
        # 不在个人主页中就继续加载了。
        time.sleep(1)


# 点击进入写作页。
driver.find_element_by_xpath('/html/body/div/div/div/div/div[1]/div[1]/div[4]/a').click()

time.sleep(1)

# 填写标题
titleInput = driver.find_element_by_xpath('//*[@id="title"]')
titleInput.send_keys(u'666666模333444444')

# 填写内容
contentInput = driver.find_element_by_id('mdeditor')
contentInput.send_keys(u'666666模拟3334444422222。。。。。')



#通过网页源代码可以查看value=428612正好对应着前端开发。
# 选择文章的类型值,
js = 'document.getElementById("sys_sort").value="428612";'
driver.execute_script(js)


# 修改选择的类型文本
js = 'document.getElementsByClassName("select-show")[2].innerText="前端开发";'
driver.execute_script(js)


# 点击提交
submit = driver.find_element_by_xpath('//*[@id="blog-form"]/div[3]/div/button[2]')
submit.click()

print '发布成功!'

当然这样还只是一个非常粗糙的实现。后面我会进一步优化,敬请期待。有啥好意见欢迎留言!

本文分享自微信公众号 - Python绿色通道(Future_coder)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-02-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Vamei实验室

数学与编程:“概率论”总结

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!

16810
来自专栏Vamei实验室

“不给力啊,老湿!”:RSA加密与破解

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!

89710
来自专栏Vamei实验室

线性代数01 线性的大脑

作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁任何形式转载。

17230
来自专栏Vamei实验室

统计02:怎样描绘数据

作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁转载。

14410
来自专栏Vamei实验室

来玩Play框架01 简介

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!

20520
来自专栏Vamei实验室

概率论02 概率公理

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!

11710
来自专栏Vamei实验室

树莓派:一个关于教育的故事

作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁转载。 

15530
来自专栏Vamei实验室

Python快速教程 尾声

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!

16120
来自专栏Vamei实验室

统计02:怎样描绘数据

作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁转载。

13820
来自专栏Vamei实验室

Python应用03 使用PyQT制作视频播放器

作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁任何形式转载。

16220

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励