首页 > 代码库 > 用python+selenium将腾讯首页今日话题的内容自动发表到自己cnblog里

用python+selenium将腾讯首页今日话题的内容自动发表到自己cnblog里

目的:使用pyhton下的unittest单元测试框架并结合selenium的webdriver来实现将腾讯首页的今日话题下的内容自动发表达到自己的cnblog里。

创建QQDailyTopic类继承unittest的TestCase类,setUp()方法用于测试执行前的初始化工作,而最后的tearDown()与setUp()方法相呼应,用于测试执行之后的善后工作。
python 3.x 和 selenium 2
实现代码如下:

 1 #coding=utf-8 2 from selenium import webdriver 3 import unittest 4 from time import sleep 5  6 class QQDailyTopic(unittest.TestCase): 7  8     def setUp(self):  9         self.dr = webdriver.Firefox()10         self.title, self.content = self.get_title_and_content_from_qq_daily_topic()11 12     def get_qq_daily_topic_url(self):13         return self.dr.find_element_by_css_selector(#todaytop a).get_attribute(href)14 15     def get_title_and_content_from_qq_daily_topic(self):16         self.dr.get(http://www.qq.com/)17         url = self.get_qq_daily_topic_url()18         self.dr.get(url)19         title = self.dr.find_element_by_id(sharetitle).text20         content = self.dr.find_element_by_id(articleContent).get_attribute(innerHTML)21         return (title, content)22 23     def login(self, username, password):24         self.dr.find_element_by_id(input1).send_keys(username)25         self.dr.find_element_by_id(input2).send_keys(password)26         self.dr.find_element_by_id(signin).click()27 28     #借助js向添加新随笔的富文本框插入指定内容29     def set_content(self, text):30         text = text.strip()31         js = document.getElementById("Editor_Edit_EditorBody_ifr").contentWindow.document.body.innerHTML=\‘%s\‘ %(text)32         print(js)33         self.dr.execute_script(js)34 35     def test_transpond_qq_daily_topic(self):36         self.dr.get(https://passport.cnblogs.com/user/signin)37         self.login(kemi_xxxx, kemi_xxxx)#自己博客园用户名和密码38         sleep(3)39 40         self.dr.get(https://i.cnblogs.com/EditPosts.aspx?opt=1)41         self.dr.find_element_by_id(Editor_Edit_txbTitle).send_keys(self.title)42         self.set_content(self.content)43         self.dr.find_element_by_id(Editor_Edit_lkbPost).click()44 45     def tearDown(self):46         sleep(5)47         self.dr.quit()48 49 if __name__ == __main__:50     unittest.main()

 

实现效果如下:

技术分享

技术分享

用python+selenium将腾讯首页今日话题的内容自动发表到自己cnblog里