码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2016-12-11 23:00:57      阅读:329      评论:0      收藏:0      [点我收藏+]

标签:vtk   class   box   nap   vb6   reg   bgp   aot   lod   

目的:使用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).text
20         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里

标签:vtk   class   box   nap   vb6   reg   bgp   aot   lod   

原文地址:http://www.cnblogs.com/cnkemi/p/6160844.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!