前提条件:

1、使用Wamp Server部署WordPress个人博客,网上资料较多,这里不过多介绍

思路:

1、首先qq.com首页获取到今日话题的的链接;

2、通过今日话题链接访问到今日话题,并获取今日话题的标题以及话题内容;

3、登录到本地的博客,发表今日话题。

难点:

今日话题的内容就是对应文章‘innerHTML’属性的内容

脚本实现如下:

 #coding:utf-8
from selenium import webdriver
import time class QQDailyHot(): def __init__(self):
self.driver = webdriver.Chrome()
self.driver.maximize_window()
self.title, self.content = self.get_title_and_content_from_daily_hot() def get_daily_hot_url(self):
return self.by_css('#todaytop a').get_attribute('href') def get_title_and_content_from_daily_hot(self):
self.driver.get('http://www.qq.com/')
url = self.get_daily_hot_url()
self.driver.get(url)
title = self.by_id('sharetitle').text
content = self.by_id('articleContent').get_attribute('innerHTML')
return title, content def quit(self):
self.driver.quit() def create_post_from_daily_hot(self):
self.driver.get('http://localhost/wp-login.php')
self.login_as_test()
self.driver.get('http://localhost/wp-admin/post-new.php')
self.by_id('title').send_keys(self.title)
self.set_content(self.content)
self.by_id('publish').click() def set_content(self, text):
text = text.strip()
js = 'document.getElementById("content_ifr").contentWindow.document.body.innerHTML=\'%s\'' %(text)
print(js)
self.driver.execute_script(js) def login(self, user_name, password):
self.by_id('user_login').send_keys(user_name)
self.by_id('user_pass').send_keys(password)
self.by_id('wp-submit').click() def login_as_test(self):
user_name = password = 'test'
self.login(user_name, password) def by_id(self, the_id):
return self.driver.find_element_by_id(the_id) def by_css(self, css):
return self.driver.find_element_by_css_selector(css) def by_name(self, name):
return self.driver.find_element_by_name(name) if __name__ == '__main__':
daily_hot = QQDailyHot()
daily_hot.create_post_from_daily_hot()
daily_hot.quit()

登录到WordPress,查看文章内容(部分截图):

Python+Selenium爬虫实战一《将QQ今日话题发布到个人博客》的更多相关文章

  1. Python开发爬虫之动态网页抓取篇:爬取博客评论数据——通过Selenium模拟浏览器抓取

    区别于上篇动态网页抓取,这里介绍另一种方法,即使用浏览器渲染引擎.直接用浏览器在显示网页时解析 HTML.应用 CSS 样式并执行 JavaScript 的语句. 这个方法在爬虫过程中会打开一个浏览器 ...

  2. python爬虫实战之爬取智联职位信息和博客文章信息

    1.python爬取招聘信息 简单爬取智联招聘职位信息 # !/usr/bin/env python # -*-coding:utf-8-*- """ @Author  ...

  3. 在CentOS下利用Python+selenium获取腾讯首页的今日话题。

    1.安装依赖包 yum install wget firefox gcc zlib zlib-devel Xvfb 2.安装setuptools 官网地址:https://pypi.python.or ...

  4. python网络爬虫实战PDF高清完整版免费下载|百度云盘|Python基础教程免费电子书

    点击获取提取码:vg1y python网络爬虫实战帮助读者学习Python并开发出符合自己要求的网络爬虫.网络爬虫,又被称为网页蜘蛛,网络机器人,是一种按照一定的规则,自动地抓取互联网信息的程序或者脚 ...

  5. python+selenium 自动化测试实战

    一.前言: 之前的文章说过, 要写一篇自动化实战的文章, 这段时间比较忙再加回家过11一直没有更新博客,今天整理一下实战项目的代码共大家学习.(注:项目是针对我们公司内部系统的测试,只能内部网络访问, ...

  6. 关于Python网络爬虫实战笔记③

    Python网络爬虫实战笔记③如何下载韩寒博客文章 Python网络爬虫实战笔记③如何下载韩寒博客文章 target:下载全部的文章 1. 博客列表页面规则 也就是, http://blog.sina ...

  7. 《一头扎进》系列之Python+Selenium框架实战篇7 - 年底升职加薪,年终奖全靠它!Merry Christmas

    1. 简介 截止到上一篇文章为止,框架基本完全搭建完成.那么今天我们要做什么呢????聪明如你的小伙伴或者是童鞋一定已经猜到了,都测试完了,当然是要生成一份高端大气上档次的测试报告了.没错的,今天宏哥 ...

  8. 关于Python网络爬虫实战笔记①

    python网络爬虫项目实战笔记①如何下载韩寒的博客文章 python网络爬虫项目实战笔记①如何下载韩寒的博客文章 1. 打开韩寒博客列表页面 http://blog.sina.com.cn/s/ar ...

  9. Python网络爬虫实战(一)快速入门

    本系列从零开始阐述如何编写Python网络爬虫,以及网络爬虫中容易遇到的问题,比如具有反爬,加密的网站,还有爬虫拿不到数据,以及登录验证等问题,会伴随大量网站的爬虫实战来进行. 我们编写网络爬虫最主要 ...

随机推荐

  1. [Linux] 虚拟环境的配置和使用 virtualenv

    1.安装 sudo apt-get install python-virtualenv 2.使用 创建虚拟环境: virtualenv [虚拟环境名称] 例如: virtualenv env_test ...

  2. PXE_kickstart安装Ubuntu

    1.准备 1.1.apt-get remove iptables卸载IP过滤表1.2.下载镜像 2.DHCP安装2.1.apt-get install dhcp3-server(在ubuntu12中, ...

  3. Android HOOK工具Cydia Substrate使用详解

    目录(?)[+] Substrate几个重要API介绍 MShookClassLoad MShookMethod 使用方法 短信监控实例   Cydia Substrate是一个代码修改平台.它可以修 ...

  4. Docker学习(二)docker镜像操作

    上一篇:docker学习(一)在centos7上安装docker 列出所有docker镜像 docker images 拉取镜像 docker pull 镜像名 我这里一Tomact为例 首先在Doc ...

  5. (转)Java获取CLASSPATH路径

    ClassLoader提供了两个方法用于从装载的类路径中取得资源: public URL getResource(String name); public InputStream getResourc ...

  6. web.xml配置详解(2)

    1 定义头和根元素 部署描述符文件就像所有XML文件一样,必须以一个XML头开始.这个头声明可以使用的XML版本并给出文件的字符编码.DOCYTPE声明必须立即出现在此头之后.这个声明告诉服务器适用的 ...

  7. Loj 538 递推数列

    Loj 538 递推数列 出题人:这题提高难度吧.于是放在了%你赛的 \(D1T2\) . 递推式为 \(a_i=k*a_{i-1}+a_{i-2}\) , 注意到 \(k\in \mathbb{N_ ...

  8. Roslyn 入门:使用 .NET Core 版本的 Roslyn 编译并执行跨平台的静态的源码

    Roslyn 是微软为 C# 设计的一套分析器,它具有很强的扩展性.以至于我们只需要编写很少量的代码便能够编译并执行我们的代码. 作为 Roslyn 入门篇文章之一,你将可以通过本文学习如何开始编写一 ...

  9. GridView合并表头多重表头

    后台代码: using System; using System.Data; using System.Configuration; using System.Web; using System.We ...

  10. 两分钟学会Android平台NDK编程(无须Eclipse和cygwin,可使用命令行打包多个so)

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/wangbin_jxust/article/details/37389383 之前在进行cocos2d ...