EasySpider无下一页按钮只有具体页面按钮时的翻页方法(EXEC和EVAL教程)

在一些网页中,翻页操作没有“下一页”按钮,用户只能通过点击具体的页码按钮进行翻页。此时,我们需要编写逻辑来动态调整页码按钮的点击顺序,从而实现自动翻页。本文将以中国地震台网为例,展示如何使用EXEC和EVAL配合实现这种翻页操作。

rpa_tutorial_easyspider_case_Page_turning_1

简单循环点击页码按钮

一种简单的方案是选中页面上的所有页码按钮并循环点击,但这种方式仅适用于固定页数,且可能点击到不相关的按钮(如尾页、首页),因此不是最优解。

rpa_tutorial_easyspider_case_Page_turning_2

EXEC和EVAL配合实现动态翻页

1. 基本思路

为了动态点击页面的页码按钮,我们可以使用EXEC和EVAL配合,实现动态更新页码按钮的XPath。在每次翻页时,程序会根据当前的页码自动调整下一次点击的页码按钮。

步骤概览:

  1. 定义一个变量self.page,初始值为2(因为第一页已经点击,需要从第二页开始)。
  2. 设置翻页操作,并将XPath中的页码部分替换为动态的变量self.page
  3. 每次翻页后,将self.page的值加1,确保下一次点击的页码正确。

2. 实现步骤

2.1定义自定义变量

在任务开始时,通过自定义操作定义一个变量self.page,初始值设为2,表示下一次点击的页码是第2页。代码如下:

    
python
self.page = 2

rpa_tutorial_easyspider_case_Page_turning_3

2.2 设置翻页操作

完成数据提取流程后,EasySpider会提示是否设置翻页操作。此时,我们选中第2页的页码按钮,进入翻页设置。

rpa_tutorial_easyspider_case_Page_turning_4

rpa_tutorial_easyspider_case_Page_turning_5

rpa_tutorial_easyspider_case_Page_turning_6

2.3修改XPath

默认的翻页操作会生成一个包含页码的XPath。我们将其中的li[2]部分替换为li[eval("self.page")],使页码能够根据self.page的值动态变化。

    
javascript
//*[contains(@class, "pagination")]/ul[1]/li[eval("self.page")]/a[1]

rpa_tutorial_easyspider_case_Page_turning_7

4. 动态更新页码

在每次点击翻页按钮后,我们需要更新self.page的值。添加一个自定义操作,类型为EXEC,代码如下:

    
python
self.page += 1

这将确保下一次点击的XPath指向下一页的页码按钮。

rpa_tutorial_easyspider_case_Page_turning_8

3. 页码结构变化时的特殊处理

在某些网站中,不同页码的HTML结构可能会发生变化。例如,在中国地震台网,第一页到第二页的页码结构不同于后续页码。因此,翻页逻辑需要进行特殊处理:

特殊情况处理示例:

    
python
# 对于中国地震台网,当从第一页翻到第二页时,页码结构发生变化。
if self.page == 2: 
    self.page += 3  # 第二页开始,页码3对应的是第5个元素
else:
    self.page += 1  # 从第三页开始,页码只需递增1

根据实际情况,你可以修改逻辑,以适应不同的网站结构。

完整流程

  1. 定义变量:在任务开始时,定义self.page,初始值为2。
  2. 设置翻页操作:通过设置翻页操作,修改XPath为动态值li[eval("self.page")]
  3. 更新页码:每次翻页后,将self.page的值+1,或根据页面结构的变化进行特殊处理。

rpa_tutorial_easyspider_case_Page_turning_9

通过EXEC和EVAL配合使用,我们能够动态调整翻页按钮的XPath,解决了没有“下一页”按钮的翻页问题。这种方法在页面结构复杂、无法使用固定XPath时尤其有效。你可以根据不同网站的需求,灵活调整代码,确保自动化任务的流畅执行。

阅读全文
付费
AI爆文训练营
图文变现友好赛道,低门槛、高上限,教你从0到1做个赚钱的公众号!
立即查看
躺着赚钱
¥149/年
何老师陪你做副业
这里聚焦AI副业、个人IP、自媒体运营、写作、赚钱案例。不哔哔,只分享有价值的副业项目。
立即查看
AI赚钱案例
限免
DeepSeek进阶教程
带你全面掌握DeepSeek应用技巧。提升工作、学习效率
立即查看
100万人学过
付费
网盘拉新实战教程
每周花费一小时,手把手教你赚网盘平台佣金
立即查看
500人学过
限时优惠
AiPPT
结合最新AI技术,为用户提供一键生成高质量PPT的解决方案。
立即查看
一键生成 PPT
免费
豆包MarsCode
一款免费的AI编程助手,全新支持DeepSeek R1/V3、豆包大模型1.5自由切换,免部署、更准确、更强大!
立即查看
AI编程助手
免费
Monica AI
Monica AI满血复活DeepSeek【免费】,提升您的聊天、搜索、写作和编程体验。
立即查看
一站式 AI 助手
云服务
腾讯云
综合性的云计算服务平台,现已接入DeepSeek,提供多样化的云解决方案
立即查看
高效可靠
云服务
阿里云
全球领先的云计算与数据服务平台,提供云服务器、存储、数据库、安全等多种服务
立即查看
多样化
DeepSeek企业微信码
免费领取DeepSeek资料