Python+Selenium爬虫实战一《将QQ今日话题发布到个人博客》
前提条件:
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今日话题发布到个人博客》的更多相关文章
- Python开发爬虫之动态网页抓取篇:爬取博客评论数据——通过Selenium模拟浏览器抓取
区别于上篇动态网页抓取,这里介绍另一种方法,即使用浏览器渲染引擎.直接用浏览器在显示网页时解析 HTML.应用 CSS 样式并执行 JavaScript 的语句. 这个方法在爬虫过程中会打开一个浏览器 ...
- python爬虫实战之爬取智联职位信息和博客文章信息
1.python爬取招聘信息 简单爬取智联招聘职位信息 # !/usr/bin/env python # -*-coding:utf-8-*- """ @Author ...
- 在CentOS下利用Python+selenium获取腾讯首页的今日话题。
1.安装依赖包 yum install wget firefox gcc zlib zlib-devel Xvfb 2.安装setuptools 官网地址:https://pypi.python.or ...
- python网络爬虫实战PDF高清完整版免费下载|百度云盘|Python基础教程免费电子书
点击获取提取码:vg1y python网络爬虫实战帮助读者学习Python并开发出符合自己要求的网络爬虫.网络爬虫,又被称为网页蜘蛛,网络机器人,是一种按照一定的规则,自动地抓取互联网信息的程序或者脚 ...
- python+selenium 自动化测试实战
一.前言: 之前的文章说过, 要写一篇自动化实战的文章, 这段时间比较忙再加回家过11一直没有更新博客,今天整理一下实战项目的代码共大家学习.(注:项目是针对我们公司内部系统的测试,只能内部网络访问, ...
- 关于Python网络爬虫实战笔记③
Python网络爬虫实战笔记③如何下载韩寒博客文章 Python网络爬虫实战笔记③如何下载韩寒博客文章 target:下载全部的文章 1. 博客列表页面规则 也就是, http://blog.sina ...
- 《一头扎进》系列之Python+Selenium框架实战篇7 - 年底升职加薪,年终奖全靠它!Merry Christmas
1. 简介 截止到上一篇文章为止,框架基本完全搭建完成.那么今天我们要做什么呢????聪明如你的小伙伴或者是童鞋一定已经猜到了,都测试完了,当然是要生成一份高端大气上档次的测试报告了.没错的,今天宏哥 ...
- 关于Python网络爬虫实战笔记①
python网络爬虫项目实战笔记①如何下载韩寒的博客文章 python网络爬虫项目实战笔记①如何下载韩寒的博客文章 1. 打开韩寒博客列表页面 http://blog.sina.com.cn/s/ar ...
- Python网络爬虫实战(一)快速入门
本系列从零开始阐述如何编写Python网络爬虫,以及网络爬虫中容易遇到的问题,比如具有反爬,加密的网站,还有爬虫拿不到数据,以及登录验证等问题,会伴随大量网站的爬虫实战来进行. 我们编写网络爬虫最主要 ...
随机推荐
- 【Java实战】DecimalFormat对数值格式化的舍入问题——RoundingMode
转自http://blog.csdn.net/alanzyy/article/details/8465098 背景: 在对数值做一些计算的时候,往往我们需要控制计算结果的精度,所以会使用到Dec ...
- runtime 知识点
demo https://github.com/ZOYOOPlus/runtime2 // // ViewController.m // runtime // Copyright © 2017年 ...
- 华为荣耀8 android 让真机显示 DeBug Log调试信息 (真机调试时不显示 Logcat 日志的解决办法)
================================================================ 以下内容转载自: https://blog.csdn.net/aiko ...
- getServletContext()方法详解
javax.servlet.ServletContext接口 一个servlet上下文是servlet引擎提供用来服务于Web应用的接口.Servlet上下文具有名字(它属于Web应用的名字)唯一映射 ...
- 二次剩余-Cipolla
二次剩余 \(Cipolla\) 算法 概述 大概就是在模 \(p\) 意义下开根号,如求解方程\(x^2\equiv n(mod\ p)\). 这里只考虑 \(p\) 为素数的情况.若 \(p=2\ ...
- 关于解决Springboot跨域请求的方法
前言 最近在项目中,由于前后分离,前台项目和后台项目部署的不在一台服务器,就产生了跨域的问题,特此记录下 正文 正常情况下,如果提示: 就可以判断是没有解决跨域的问题了. 在SSM中,我曾经这样解决过 ...
- LeetCode 424. Longest Repeating Character Replacement
原题链接在这里:https://leetcode.com/problems/longest-repeating-character-replacement/description/ 题目: Given ...
- keycloak 了解
Keycloak 是一个针对Web应用和 RESTful Web 服务提供 SSO 集成.基于 OAuth 2.0 和 JSON Web Token(JWT) 规范.目前用于实现 JBoss 与 Wi ...
- apiman 一个apigateway
APIMAN 提供 API 管理的方法技术,结合一个 API 设计/配置层以及快速的运行时. 主要特性: 完全异步 丰富的管理层 容易嵌入 API 管理 参考资料 http://www.apiman. ...
- SQL的 like 中间字符通配 用法
中间的字符也可以用通配符匹配如果业务需求是找出某表中某字段是“好*****上”的数据,SQL语句应该写成 select * from Table where UserName like '%好%上%' ...