python网络爬虫(第七章:iframe处理+动作链)

1.selenium处理 iframe

一张页面当中可以嵌套一张子页面,可是通过iframe标签实现子页面的嵌套
https://www.runoob.com/try/try.php?filename=jqueryui-api-droppable

iframe标签中的标签定位和一般的网页标签定位的区别是:
一般的网页标签定位:driver.find_element_by_id('XXX')
iframe标签中的标签定位:
driver.switch_to.frame('AAA')
driver.find_element_by_id('XXX')

备注:仅仅是添加了switch_to.frame()实现iframe()标签中的标签定位

2.动作链

动作链【拖动】使用场景:网页用户登录时的滑块验证(也是一种验证方式)
步骤如下:

step1:导包 from selenium.webdriver import ActionChains
step2:实例化动作链 action = ActionChains(driver)
step3:点击并长按动作链 ActionChains.click_and_holds(定位的拖动标签)
step4:滑块移动 ActionChains.move_to_offset(x,y)
step5:执行滑动操作  .perform()
step6:释放动作链对象 action.release()

3.综合案例

from selenium import webdriver
from time import sleep
#导入动作链对应的类
from selenium.webdriver import ActionChains
#1.获取浏览器对象
driver = webdriver.Chrome('./chromedriver.exe')

#2.通过该浏览器发送url请求
driver.get('https://www.runoob.com/try/try.php?filename=jqueryui-api-droppable')

#3.定位标签     如果是整页的数据,则page_text = driver.page_source,但是这里还是要继续解析页面信息
#如果定位的标签存在于iframe标签之中,则必须使用switch_to.frame(id)
driver.switch_to.frame('iframeResult')     #driver.switch_to.frame(id)
div = driver.find_element_by_id('draggable')

#动作链:动作链其实就是拖动【如会员登录的时候,会出现滑块移动】
#   1.import selenium.webdriver from ActionChains
#   2.action = ActionChains(driver)
#   3.点击且长按需要拖动的标签:action.click_and_hold(标签)
#   4.标签拖动【是根据像素进行拖动】,使用move_by_offset(x,y)
#   5.perfor.() 让动作立即执行;  #标签移动的像素确定好以后,使用.perform()执行移动的像素
#   6.释放动作链对象 action.release()
action = ActionChains(driver)
#点击长按指定的标签
action.click_and_hold(div)

for i in range(5):
    action.move_by_offset(17,0).perform()
    sleep(0.5)

#释放动作链对象
action.release()

#关闭
driver.quit()
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值