用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‘).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()

实现效果如下:

				
时间: 2024-08-16 00:35:25

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

用python+selenium抓取知乎今日最热和本月最热的前三个问题及每个问题的首个回答并保存至html文件

抓取知乎今日最热和本月最热的前三个问题及每个问题的首个回答,保存至html文件,该html文件的文件名应该是20160228_zhihu_today_hot.html,也就是日期+zhihu_today_hot.html 代码如下: from selenium import webdriver from time import sleep import time class ZhiHu():    def __init__(self):       self.dr = webdriver.Chr

python+selenium+PhantomJS爬取网页动态加载内容

一般我们使用python的第三方库requests及框架scrapy来爬取网上的资源,但是设计javascript渲染的页面却不能抓取,此时,我们使用web自动化测试化工具Selenium+无界面浏览器PhantomJS来抓取javascript渲染的页面,下面实现一个简单的爬取 环境搭建 准备工具:python3.5,selenium,phantomjs 我的电脑里面已经装好了python3.5 安装Selenium pip3 install selenium 安装Phantomjs 按照系统

转 Python Selenium设计模式-POM

前言 本文就python selenium自动化测试实践中所需要的POM设计模式进行分享,以便大家在实践中对POM的特点.应用场景和核心思想有一定的理解和掌握. 为什么要用POM 基于python selenium2开始UI级自动化测试并不是多么艰巨的任务.只需要定位到元素,执行对应的操作即可.下面我们看一下这个简单的脚本实现百度搜索. from selenium import webdriver import time driver = webdriver.Firefox() driver.i

2017.07.28 Python网络爬虫之爬虫实战 今日影视2 获取JS加载的数据

1.动态网页指几种可能: 1)需要用户交互,如常见的登录操作: 2)网页通过js / AJAX动态生成,如一个html里有<div id="test"></div>,通过JS生成<divid="test"><span>aaa</span></div>: 3)点击输入关键字后进行查询,而浏览器url地址不变 2.想用Python获取网站中JavaScript返回的数据,目前有两种方法: 第一种方法

Python selenium的js扩展实现

python写的数据采集,对一般有规律的页面用 urllib2 + BeautifulSoup + 正则就可以搞定. 但是有些页面的内容是通过js生成,或者通过js跳转的,甚至js中还加入几道混淆机制:对这种涉及页面脚本解析的内容,前面的方式便很无力. 这时我们需要能解析.运行js的引擎——浏览器,而python selenium能提供程序与浏览器的交互接口,再加上phantomjs这个可以后台运行的浏览器,即使用 selenium + phantomjs 便可以解决以上的问题. seleniu

Python Selenium设计模式 - PO设计模式

整理一下python selenium自动化测试实践中使用较多的po设计模式. 为什么要用PO 基于python selenium2开始开始ui自动化测试脚本的编写不是多么艰巨的任务.只需要定位到元素,执行对应元素的操作即可. 下面我们看一下这个简单的脚本实现百度搜索. 从上述代码来看,我们所能做的就是元素的定位,然后进行键盘输入或鼠标动作.就这个小程序而已,维护起来看起来是很容易的. 但随着时间的迁移,测试套件将持续的增长.脚本也将变的越来越多.如果我们需要维护10个页面,100个页面,甚至1

WEB自动化(Python+selenium)的API

在做Web自动化过程中,汇总了Python+selenium的API相关方法,给公司里的同事做了第二次培训,分享给大家                                                                                                                     WEB自动化测试培训2 课程目的 一.Webdriver API 的使用 课程内容 1    控制浏览器 Selenium 主要提供的是操作页面上各

Python+Selenium笔记(九):操作警告和弹出框

#之前发的 driver.switch_to_alert() 这句虽然可以运行通过,但是会弹出警告信息(这种写法3.x不建议使用)  改成 driver.switch_to.alert就不会了. (一) 前言 开发人员使用JavaScript 警告或者模态对话框来提示校验错误信息.报警信息.执行操作后的返回信息,甚至用来接收输入值等. (二) Alert类 Selenium WebDriver 通过Alert 类来操控 JavaScript 警告. (三) Alert功能及方法 功能/属性 简单

豆瓣自动注册、回贴脚本 powered by Python &amp; Selenium

前言,之前在豆瓣日志写了这片文章,结果被豆瓣删除了...哎 ----- 所删除内容 ----- <豆瓣自动注册.回贴脚本 powered by Python & Selenium> (2018-01-12 15:29) 故事起因: 上周的时候吧,发现有条疯狗在这张剧照(天生杀人狂)下面骂我.如果只是骂我傻逼我还能忍,毕竟人在江湖飘哪人不挨刀.但是你问候的范围大了,那作为一个社会主义核心价值观没有问题的青年,我必须得去操一下你妈了吧.请点击操他妈热线.结果这个怂逼居然还发私信骂我然后还把