动态页面选择处理翻页过程

一、前提

每天都要处理动态页面上的工单,只选择属于自己管辖区域的工单,处理完一条页面即刻刷新。每天不停的在页面上查找、翻页,累的不行,想找出一种自动处理的办法。

二、思路

将翻页过程做成一个无限循环,通过条件开关跳出循环。其中对每页中记录的查找、判断、处理等功能定义为一个功能函数,在处理过程中随时调用。功能的参数为当前页面记录条数,返回值为是否重新循环的开关。每处理一条页面刷新,循环必须重新开始。如果没有记录要处理,循环判断是否到结尾后,退出循环。

三、代码

1.主循环代码:

        b=0#循环开关
        c=0 #下一页点击次数
        while b==0:
            try:
                time.sleep(1)##############/html/body/div[2]/div[2]/nav/ul/div/ul/li[6]/a/span
                tt=obj.find_element_by_xpath('/html/body/div[2]/div[2]/nav/ul/div/ul/li[6]/a/span').text#获取总条数文本
                total=[int(s) for s in tt.split() if s.isdigit()][0]#提取数字:条数
                #print(total)#/html/body/div[2]/div[2]/div[2]/table/tbody[1]/tr[1]/td[5]/a[1]
                ######/html/body/div[2]/div[2]/div[2]/table/tbody[1]/tr[4]/td[5]/a[1]
                pn=total//10-c#除数取整,翻页一次整数减一
                page=total%10#余数
                if pn==0 and page!=0:#如果不为0,小于10,则取余数
                    b=seek_one(page)
                elif pn!=0:#整数不为0,直接取10,直到为0
                    b=seek_one(10)
                    if b==1:#/html/body/div[2]/div[2]/nav/ul/div/ul/li[4]/a##下一页
                        try:
                            obj.find_element_by_xpath('/html/body/div[2]/div[2]/nav/ul/div/ul/li[4]/a').click()
                            c+=1#下一页后,整数页码减一
                            b=0#继续循环
                        except:
                            break
                else:#都为0,跳出
                    b=1
            #
            except:
                print('error')
                obj.refresh()
                time.sleep(9)
        print(u'没有工单要派了,休息5分钟,一会再瞧瞧........')
        time.sleep(300)
2.功能函数代码

def seek_one(page):#每页查找
        for i in range(1,page+1):#一条条地址进行鉴别
            tt_address=obj.find_element_by_xpath('/html/body/div[2]/div[2]/div[2]/table/tbody[1]/tr['+str(i)+']/td[5]/a[1]').text#取地址
            #print(tt_address)
            if u'XX州'  in tt_address or\
               u'XX市'  in tt_address or\
               (u'XX市'  in tt_address and u'汉川' not in tt_address) or\
               u'XX市'  in tt_address:#判断是不是四个区域,是则派单
                ####obj.find_elements_by_xpath('/html/body/div[2]/div[2]/div[2]/table/tbody[1]/tr[3]/td[3]
                kind=obj.find_element_by_xpath('/html/body/div[2]/div[2]/div[2]/table/tbody[1]/tr['+str(i)+']/td[3]').text
                ####/html/body/div[2]/div[2]/div[2]/table/tbody[1]/tr[3]/td[7]/a
                obj.find_element_by_xpath('/html/body/div[2]/div[2]/div[2]/table/tbody[1]/tr['+str(i)+']/td[7]/a').click()
                send(kind,tt_address)
                b=0
                break#派单后页面刷新,必须重新开始,因为派的人很多
            else:b=i#判断一个页面是否鉴别完成
        if b==page:#判断一个页面是否鉴别完,完则返回上级循环中止
            b=1
        return b
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值