用python+selenium将腾讯首页今日话题的内容自动发表到自己cnblog里
目的:使用pyhton下的unittest单元测试框架并结合selenium的webdriver来实现将腾讯首页的今日话题下的内容自动发表达到自己的cnblog里。
思路:创建QQDailyTopic类继承unittest的TestCase类,setUp()方法用于测试执行前的初始化工作,而最后的tearDown()与setUp()方法相呼应,用于测试执行之后的善后工作。
然后用方法get_qq_daily_topic_url获得qq首页今日话题的url;
方法get_title_and_content_from_qq_daily_topic从今日话题获得后面我们在cnblog下新blog需要的标题title和富文本content,提取今日话题title文本和内容的innerHTML;
方法login用于登录,定位元素并输入username和password然后点击登录按钮;
方法set_content用于向富文本框填入内容,这里借助js向添加新随笔的富文本框插入指定内容,通过scecute_scrit()执行js代码;
方法test_transpond_qq_daily_topic用来测试向cnblog里转发qq首页今日话题,包括自动用有效用户名和密码登录我的博客,在添加新随笔的标题和富文本框里自动填入今日话题的标题和内容,最后点击发布按钮。unittest下必须以“test”开头的方法。
基于python 3.x 和 selenium 2
实现代码如下:
#coding=utf-8
from selenium import webdriver
import unittest
from time import sleep
class QQDailyTopic(unittest.TestCase):
def setUp(self):
self.dr = webdriver.Firefox()
self.title, self.content = self.get_title_and_content_from_qq_daily_topic()
def get_qq_daily_topic_url(self):
return self.dr.find_element_by_css_selector('#todaytop a').get_attribute('href')
def get_title_and_content_from_qq_daily_topic(self):
self.dr.get('http://www.qq.com/')
url = self.get_qq_daily_topic_url()
self.dr.get(url)
title = self.dr.find_element_by_id('sharetitle').text
content = self.dr.find_element_by_id('articleContent').get_attribute('innerHTML')
return (title, content)
def login(self, username, password):
self.dr.find_element_by_id('input1').send_keys(username)
self.dr.find_element_by_id('input2').send_keys(password)
self.dr.find_element_by_id('signin').click()
#借助js向添加新随笔的富文本框插入指定内容
def set_content(self, text):
text = text.strip()
js = 'document.getElementById("Editor_Edit_EditorBody_ifr").contentWindow.document.body.innerHTML=\'%s\'' %(text)
print(js)
self.dr.execute_script(js)
def test_transpond_qq_daily_topic(self):
self.dr.get('https://passport.cnblogs.com/user/signin')
self.login('kemi_xxxx', 'kemi_xxxx')#自己博客园用户名和密码
sleep(3)
self.dr.get('https://i.cnblogs.com/EditPosts.aspx?opt=1')
self.dr.find_element_by_id('Editor_Edit_txbTitle').send_keys(self.title)
self.set_content(self.content)
self.dr.find_element_by_id('Editor_Edit_lkbPost').click()
def tearDown(self):
sleep(5)
self.dr.quit()
if __name__ == '__main__':
unittest.main()
实现效果如下:
QQ首页的今日话题

cnblog转发今日话题
用python+selenium将腾讯首页今日话题的内容自动发表到自己cnblog里的更多相关文章
- 在CentOS下利用Python+selenium获取腾讯首页的今日话题。
1.安装依赖包 yum install wget firefox gcc zlib zlib-devel Xvfb 2.安装setuptools 官网地址:https://pypi.python.or ...
- 用python+selenium抓取知乎今日最热和本月最热的前三个问题及每个问题的首个回答并保存至html文件
抓取知乎今日最热和本月最热的前三个问题及每个问题的首个回答,保存至html文件,该html文件的文件名应该是20160228_zhihu_today_hot.html,也就是日期+zhihu_toda ...
- python+selenium+PhantomJS爬取网页动态加载内容
一般我们使用python的第三方库requests及框架scrapy来爬取网上的资源,但是设计javascript渲染的页面却不能抓取,此时,我们使用web自动化测试化工具Selenium+无界面浏览 ...
- Python+Selenium爬虫实战一《将QQ今日话题发布到个人博客》
前提条件: 1.使用Wamp Server部署WordPress个人博客,网上资料较多,这里不过多介绍 思路: 1.首先qq.com首页获取到今日话题的的链接: 2.通过今日话题链接访问到今日话题,并 ...
- Python+ Selenium自动化登录腾讯QQ邮箱实例
学习了Python语言一段时间后,在公司的项目里也使用到了python来写测试脚本,一些重复的操作都使用脚本来处理了.大大的提高工作效率,减少了一些手工重复的操作. 以下是使用unittest框架写的 ...
- 看我怎么扒掉CSDN首页的底裤(python selenium+phantomjs爬取CSDN首页内容)
这里只是学习一下动态加载页面内容的抓取,并不适用于所有的页面. 使用到的工具就是python selenium和phantomjs,另外调试的时候还用了firefox的geckodriver.exe. ...
- 腾讯大牛教你简单的自动化测试模型(Python+Selenium)
今天讲解简单的自动化测试模型,对于刚接触自动化测试的同学,由于没有编程语言的基础,是搞不懂代码里面的函数.封装.包以及其他概念,只是了解字符串.数组.元组及字典这种最基本的名词,更不懂自动化测试框架了 ...
- Python Selenium设计模式-POM
前言 本文就python selenium自动化测试实践中所需要的POM设计模式进行分享,以便大家在实践中对POM的特点.应用场景和核心思想有一定的理解和掌握. 为什么要用POM 基于python s ...
- python selenium 自动化测试web
如何使用python完成自动化测试web页面呢?首选selenium 那基于python的selenium如何使用,下面看一段测试案例: 基于python的selenium 安装方法: pip i ...
随机推荐
- 使用Python一步一步地来进行数据分析总结
原文链接:Step by step approach to perform data analysis using Python译文链接:使用Python一步一步地来进行数据分析--By Michae ...
- 深入浅出设计模式——享元模式(Flyweight Pattern)
模式动机 面向对象技术可以很好地解决一些灵活性或可扩展性问题,但在很多情况下需要在系统中增加类和对象的个数.当对象数量太多时,将导致运行代价过高,带来性能下降等问题.享元模式正是为解决这一类问题而诞生 ...
- 笔记本_Lenovo_G480
ZC: 这是 严g 的笔记本 1.进入 BIOS --> F2键 2.安装 WinServer2003时,蓝屏 2.1.Win2003的PE(不太明白 这里的PE指什么...)不支持 AHCI ...
- Tortoise 下修改服务器路径(Relocate与Switch)
今天遇到SVN的路径变化,要在客户端修改服务器的下载路径,当初想直接删除重新checkout,后来想着还要重建项目比较麻烦,就找找修改服务器路径的方法.网上基本说的都是右键-->Relocate ...
- 【java基础】方法2
让形参可变的方法 jdk1.5之后,java允许定义形参长度可变的参数,允许为方法指定数量不确定的形参. package object; public class VariableParam { // ...
- Oracle系统表整理+常用SQL语句收集
欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://g ...
- Chinese culture
文房四宝 笔墨纸砚是中国古代文人书房中必备的宝贝,被称为“文房四宝”.用笔墨书写绘画在 中国可追溯到五千年前.秦(前221---前206)时已用不同硬度的毛和竹管制笔:汉代(前206—公元220) ...
- 有关于psExec的使用
psExec是微软pstools工具包中最常用的一个工具,也是在内网渗透中的免杀渗透利器. psExec能够在命令行下在对方没有开启telnet服务的时候返回一个半交互的命令行,像telnet客户端一 ...
- iOS应用之间跳转
本篇博文将涉及到以下知识点: app应用跳转的原理解析 如何实现两个app应用之间的跳转 如何实现两个app之间跳转到指定界面 二.应用跳转原理 相信从一个应用跳转到另一个应用大家并不陌生,最常见的莫 ...
- 转:PHP--获取响应头(Response Header)方法
转:http://blog.sina.com.cn/s/blog_5f54f0be0102uvxu.html PHP--获取响应头(Response Header)方法 方法一: ========== ...