龙空技术网

Python爬虫:如何实现一个拖动爬取?selenium动作链ActionChains

Python涛哥 150

前言:

今天朋友们对“webdriverjquery定位”大致比较着重,大家都需要学习一些“webdriverjquery定位”的相关知识。那么小编同时在网摘上汇集了一些关于“webdriverjquery定位””的相关文章,希望看官们能喜欢,兄弟们一起来了解一下吧!

动作链 :一系列连续的动作(滑动)

我们来看下这个网页是可以拖动的

那么我们如何通过selenium来实现呢?

1.导入动作链包

from selenium.webdriver import ActionChains 

2.标签定位

url = ';bro = webdriver.Chrome(executable_path='./chromedriver')bro.get(url)sleep(1)div_tag = bro.find_element_by_xpath('//*[@id="draggable"]')

我们发现,直接报错。难道我们定位错了吗?

来看下页面源码

我们看到,拖拽的对象在另一个一个框架里,我们直接定位分析都不是同一框架,当然获取不到

如果通过find系列的函数进行标签定位,如果标签是存在于ifram下面,则会定位失败

解决方案:使用switc_to即可

bro.switch_to.frame('iframeResult')div_tag = bro.find_element_by_xpath('//*[@id="draggable"]')

3.ActionChains

# 对div_tag进行滑动操作action = ActionChains(bro)action.click_and_hold(div_tag)  # 点击且长按for i in range(6):    # perform 让动作链立即执行    action.move_by_offset(10, 15).perform()    sleep(0.5)action.release()bro.quit()

这样我们就看到了拖动

标签: #webdriverjquery定位 #webdriver执行jquery