使用Python实现博客上进行自动翻页


Posted in Python onAugust 23, 2017

先上一张代码及代码运行后的输出结果的图!

使用Python实现博客上进行自动翻页

下面上代码:

# coding=utf-8 
import os
import time
from selenium import webdriver

#打开火狐浏览器 需要V47版本以上的
driver = webdriver.Firefox()#打开火狐浏览器
url = "http://codelife.ecit-it.com"#这里打开我的博客网站
driver.get(url)#设置火狐浏览器打开的网址
time.sleep(2)

#使用xpath进行多路径或多元素定位,用法看官网http://selenium-python.readthedocs.io/locating-elements.html
elem_dh = driver.find_elements_by_xpath("//div[@class='pagination pagination-large']/ul/li/a")
print ("我是刚获取的翻页按钮的路径数组:",elem_dh)
print ("下一页按钮元素:",elem_dh[2])
time.sleep(5)

#获取当前窗口句柄
now_handle = driver.current_window_handle #获取当前窗口句柄
print ("我是当前窗口的句柄:",now_handle)#打印窗口句柄 是一串数字
time.sleep(10)

#循环获取界面
for elem in elem_dh:
  print ("我是翻页按钮上的文本信息:",elem.text)          #获取元素的文本值
  print ("我是翻页按钮的地址",elem.get_attribute('href'))  #获取元素的href属性值
  elem.click()#点击进入新的界面 _blank弹出
  print ("刚翻页完成了!")

time.sleep(20)

代码为了让大家能看清楚是怎么回事,代码我已经加了注解。

运行上面的代码后执行的结果如下:

>>> 我是刚获取的翻页按钮的路径数组: [<selenium.webdriver.firefox.webelement.FirefoxWebElement (session="b4375c0c-a3b7-42b9-aa73-ed513699718e", element="782b0162-44eb-4710-bbeb-fc4402ec7cdc")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="b4375c0c-a3b7-42b9-aa73-ed513699718e", element="40e0eede-4ecb-4d95-850f-aa3e6b18e360")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="b4375c0c-a3b7-42b9-aa73-ed513699718e", element="2665129e-ce82-4018-bfe4-a8a6ac300a19")>]
我是当前窗口的句柄: 2147483652
我是翻页按钮上的文本信息: « 上一页
我是翻页按钮的地址 None
刚翻页完成了!
我是翻页按钮上的文本信息: 2
我是翻页按钮的地址 http://codelife.ecit-it.com/page2
刚翻页完成了!
我是翻页按钮上的文本信息: 下一页 »
我是翻页按钮的地址 http://codelife.ecit-it.com/page2
刚翻页完成了!

很多同学会问运行中是个什么情况,给大家上几张图片:

使用Python实现博客上进行自动翻页

上图是自动在地址栏输入http:codelife.ecit-it.com,并加载博客站点。

使用Python实现博客上进行自动翻页

默认加载的是博客第一页的内容哦。

使用Python实现博客上进行自动翻页

经过等待,等待的过程中千万别走神,否则会错过了哦!上图已经点击了,还好我眼疾手快截到图了。

使用Python实现博客上进行自动翻页

点击完第二页后就跳转到第二页去了。

观察仔细的同学会发现,我后面有一行代码是后来加上去的。

print ("下一页按钮元素:",elem_dh[2])

加入上面一行代码将可以打印出博客上的”下一页“按钮元素的定位数据。

使用Python实现博客上进行自动翻页

我们可以看到,下一页的元素信息打印出来了。如果有同学需要只点击”下一页“按钮进行翻页的话,可以用到这个元素数组。

关于元素的定位官网有详细的用法,在此不详细介绍,自备楼梯http://selenium-python.readthedocs.io/locating-elements.html

当然,开发环境大家一写要安装完好,安装的插件比较多,如果上面代码大家进行出错的话,说明大家的开发环境有问题,或是少插件,或是版本号与插件不对应。

本人电脑上的Python版本是3.6.2,安装的pywin32也是3.6版本的。

今天就写到这了,后面再继续跟大家分享,一起进步。

Python 相关文章推荐
Python yield 小结和实例
Apr 25 Python
Python学习笔记(二)基础语法
Jun 06 Python
Python中函数参数设置及使用的学习笔记
May 03 Python
Python编程判断这天是这一年第几天的方法示例
Apr 18 Python
Python调用C# Com dll组件实战教程
Oct 12 Python
Python3计算三角形的面积代码
Dec 18 Python
python 以16进制打印输出的方法
Jul 09 Python
Python编程深度学习绘图库之matplotlib
Dec 28 Python
完美解决pyinstaller打包报错找不到依赖pypiwin32或pywin32-ctypes的错误
Apr 01 Python
matplotlib.pyplot.matshow 矩阵可视化实例
Jun 16 Python
python基本算法之实现归并排序(Merge sort)
Sep 01 Python
python模块内置属性概念及实例
Feb 18 Python
Python模拟鼠标点击实现方法(将通过实例自动化模拟在360浏览器中自动搜索python)
Aug 23 #Python
Python PyQt5标准对话框用法示例
Aug 23 #Python
Python PyQt5实现的简易计算器功能示例
Aug 23 #Python
Python实现的密码强度检测器示例
Aug 23 #Python
python+selenium+autoit实现文件上传功能
Aug 23 #Python
Django与JS交互的示例代码
Aug 23 #Python
python paramiko模块学习分享
Aug 23 #Python
You might like
利用PHP实现智能文件类型检测的实现代码
2011/08/02 PHP
typecho插件编写教程(四):插件挂载
2015/05/28 PHP
PHP根据图片色界在不同位置加水印的方法
2015/07/01 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
2017/11/12 PHP
浅谈PHP中如何实现Hook机制
2017/11/14 PHP
javascript实现的一个带下拉框功能的文本框
2014/05/08 Javascript
node.js中的dns.getServers方法使用说明
2014/12/08 Javascript
如何在Angular.JS中接收并下载PDF
2016/11/26 Javascript
详解JavaScript中的属性和特性
2016/12/08 Javascript
js实现消息滚动效果
2017/01/18 Javascript
说说Vue.js中的functional函数化组件的使用
2019/02/12 Javascript
VUE DEMO之模拟登录个人中心页面之间数据传值实例
2019/10/31 Javascript
基于vue.js实现购物车
2020/01/15 Javascript
JavaScript 替换所有匹配内容及正则替换方法
2020/02/12 Javascript
JavaScript原生数组函数实例汇总
2020/10/14 Javascript
[02:32]DOTA2英雄基础教程 祸乱之源
2013/12/23 DOTA
浅谈flask源码之请求过程
2018/07/26 Python
Python中如何使用if语句处理列表实例代码
2019/02/24 Python
python动态视频下载器的实现方法
2019/09/16 Python
vscode 配置 python3开发环境的方法
2019/09/19 Python
Python操作Sonqube API获取检测结果并打印过程解析
2019/11/27 Python
Python常用模块os.path之文件及路径操作方法
2019/12/03 Python
python3.7通过thrift操作hbase的示例代码
2020/01/14 Python
python画环形图的方法
2020/03/25 Python
Python pytesseract验证码识别库用法解析
2020/06/29 Python
Python爬虫爬取博客实现可视化过程解析
2020/06/29 Python
HTML5 device access 设备访问详解
2018/05/24 HTML / CSS
Lancome兰蔻官方旗舰店:来自法国的世界知名美妆品牌
2018/06/14 全球购物
阿联酋优惠券服务:Living Kool
2019/12/12 全球购物
好的自荐信包括什么内容
2013/11/07 职场文书
国际金融专业大学生职业生涯规划书
2013/12/28 职场文书
婚前协议书
2014/04/15 职场文书
清明祭英烈活动总结
2015/05/11 职场文书
体育教师教学随笔
2015/08/15 职场文书
如何用Node.js编写内存效率高的应用程序
2021/04/30 Javascript
每日六道java新手入门面试题,通往自由的道路
2021/06/30 Java/Android