selenium,统计某分支下有多少个同类子分支的方法(用于循环获取同类型子分支属性值)
利用selenium自动化统计微博阅读数
查看微博阅读数的元素路径
微博列表中第一条微博的元素路径“//*[@id="Pl_Official_MyProfileFeed__20"]/div/div[2]/div[2]/div/ul/li[1]/a/span/span/i”
当前页最后一条微博的元素路径“//*[@id="Pl_Official_MyProfileFeed__20"]/div/div[46]/div[2]/div/ul/li[1]/a/span/span/i”
可以发现其中规律,第二个div[]内的数字决定第几条微博
本来脚本可以写成for x in range(2,46):
后来发现,并不是每一页都会45条微博,需要先获取当前页到底有多少条
通过下面的写法实现统计
path=browser.find_element_by_xpath("//*[@id='Pl_Official_MyProfileFeed__20']/div") list= path.find_elements_by_xpath("div") test=len(list) print(test)
先定义需要统计的分支的父分支,然后利用list函数统计需要统计的分支
需要注意,list后面的find_elements_by_xpath,elements是带s的
path=browser.find_element_by_xpath("//*[@id='Pl_Official_MyProfileFeed__20']/div") list= path.find_elements_by_xpath("div") test=len(list) #print(test) for page in range(2,test): WebDriverWait(browser,30,0.2).until(lambda x:x.find_element_by_xpath("//*[@id='Pl_Official_MyProfileFeed__20']/div/div["+str(page)+"]/div[2]/div/ul/li[1]/a/span/span/i"))#等待登录界面出现 num = browser.find_element_by_xpath("//*[@id='Pl_Official_MyProfileFeed__20']/div/div["+str(page)+"]/div[2]/div/ul/li[1]/a/span/span/i").text#获取阅读数 #print(page) print(num)
执行后