python之循环

最近用selenium爬虫抓取东西的时候,遇到一个问题,就是要挨个点击某个目录,目录后面是链接。也就是逐条进入每一条目录里面,进行操作

一时哽噎,竟然不知所措。想的是方向性问题,就是selenium如何决定先点击谁,再点击谁的问题。选择的方向性问题。先说解决方案

就是根据目录所在的是那一页,哪一行,给它来个顺序排列。如果一共是200行,那好,第一次点击第一行,第二次点击第二行,第三次点击第三行。也就是一个简单的

for  x in range(200)嘛,很简单。我感兴趣的是它背后的思想,selenium先点击谁,后点击谁。这里面其实是两个问题,第一个是谁和谁怎么区分,也就是第一行和第二行怎么区分,我们用数字给它绑定定位。第二个是先后问题,顺序问题,从谁开始点击,到谁点击结束。在循环遍历中,我们是通过顺序确定方向的,也就是从1开始到200结束或者从200开始到1结束。

这里面既是循环遍历的作用。循环意味着重复,也就是通过循环解决重复性的工作,两个关键点,第一是确定重复多少次,第二是每次重复的区别性。

然后我就想到了多窗口处理的时候,也是通过列表思想切换窗口的。

from selenium import webdriver
import time
zhuye = obj.current_window_handle
all_handles = obj.window_handles
if len(all_handles)>1:
    for handle in all_handles:
        if handle != zhuye:
            obj.switch_to.window(handle)

 它的思想就是先获取所有的窗口,得到一个列表,然后通过遍历的方式,确定要切换的窗口。

我们人切换浏览器窗口是怎么切换的呢?

是发现两个窗口之间的区别,然后点击。

我们有眼睛,可以直接观察到窗口之间的区别,但是selenium没有眼睛,如何判断区别呢,就是对比一下窗口角标是不是相等,方向性就是通过遍历的方式,依次向前推进。

原文地址:https://www.cnblogs.com/chaojiyingxiong/p/10265993.html