爬虫------selenium的其他方法

selenium的其他方法

1 selenium 处理cookie
通过driver.get_cookies()能够获取所有的cookie

把cookie转化为字典

{cookie[‘name’]: cookie[‘value’] for cookie in driver.get_cookies()}

#删除一条cookie
driver.delete_cookie("CookieName")

删除所有的cookie

driver.delete_all_cookies()

2 页面等待

为什么需要等待

如果网站采用了动态html技术,那么页面上的部分元素出现时间便不能确定,这个时候就可以设置一个等待时间,强制要求在时间内出现,否则报错

页面等待的方法 time.sleep(10)

3 switch方法切换的操作

  • 3.1 一个浏览器肯定会有很多窗口,所以我们肯定要有方法来实现窗口的切换。切换窗口的方法如下:

也可以使用 window_handles 方法来获取每个窗口的操作对象。例如:

# 1. 获取当前所有的窗口
current_windows = driver.window_handles

# 2. 根据窗口索引进行切换
driver.switch_to.window(current_windows[1])
  • 3.2iframe是html中常用的一种技术,即一个页面中嵌套了另一个网页,selenium默认是访问不了frame中的内容的,对应的解决思路是
    driver.switch_to.frame()

动手:模拟登陆qq邮箱

在使用selenium登录qq邮箱的过程中,我们会发现,无法在邮箱的登录input标签中输入内容,通过观察源码可以发现,form表单在一个frame中,所以需要切换到frame中

  • 3.3 当你触发了某个事件之后,页面出现了弹窗提示,处理这个提示或者获取提示信息方法如下:

    alert = driver.switch_to_alert()

    扫描二维码关注公众号,回复: 4107450 查看本文章

4. 页面前进和后退

  • driver.forward() #前进
  • driver.back() # 后退

5. selenium的优缺点

  • selenium能够执行页面上的js,对于js渲染的数据和模拟登陆处理起来非常容易
  • selenium由于在获取页面的过程中会发送很多请求,所以效率非常低,所以在很多时候需要酌情使用

小结

  • 获取cookie: get_cookies()
  • 删除cookie: delete_all_cookies()
  • 切换窗口:switch_to.window()
  • 切换iframe: switch_to.frame()

猜你喜欢

转载自blog.csdn.net/qq_43475097/article/details/84141932