Python Selenium实现博客自动翻页教程
本文介绍如何使用Python结合Selenium库实现博客网站的自动翻页功能。通过Firefox浏览器驱动,利用XPath定位分页元素,遍历并点击“下一页”按钮实现内容加载。文中提供了完整代码、运行输出及环境配置建议,适用于Python 3.6.2及pywin32 3.6版本,帮助开发者掌握网页自动化基础操作。
首先展示代码及其运行后的输出结果截图。

接下来提供具体代码实现。
# 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 刚翻页完成了!
针对运行过程中的具体现象,这里补充几张关键截图进行说明。

上图展示了自动在地址栏输入http:codelife.ecit-it.com并加载博客站点的过程。

默认情况下,系统会加载博客的第一页内容。

在等待加载的过程中请勿离开,以免错过关键步骤。上图已捕捉到点击动作,得益于反应迅速才成功截图。

完成第二页的点击操作后,页面成功跳转至第二页。
细心的读者可能注意到,代码中有一行是后续添加的。
print ("下一页按钮元素:",elem_dh[2])
添加上述代码行后,可以打印出博客页面上“下一页”按钮元素的定位数据。

从输出结果可以看到,下一页的元素信息已被成功打印。如果仅需点击“下一页”按钮进行翻页,可以使用该元素数组来实现。
关于元素定位的详细用法,官网有完整说明,此处不再赘述,参考链接为http://selenium-python.readthedocs.io/locating-elements.html
此外,开发环境必须安装完整。由于涉及的插件较多,若上述代码运行出错,通常意味着开发环境存在问题,可能是缺少插件或版本号与插件不兼容。
本人电脑上的Python版本为3.6.2,安装的pywin32也是3.6版本。
本次分享就到这里,后续将继续与大家交流,共同进步。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









