脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - python网络爬虫selenium打开多窗口与切换页面的实现

python网络爬虫selenium打开多窗口与切换页面的实现

2022-09-06 09:01侯小啾 Python

本文主要介绍了python网络爬虫selenium打开多窗口与切换页面的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

关于python网络爬虫selenium打开多窗口与切换页面的方法代码测试与解析。

首先打开百度

from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")

以知乎为例,打开一个新的界面,使用 execute_script() 方法,执行JavaScript代码。
并调用driver的current_url属性,然后查看当前页面的url:

driver.execute_script("window.open("https://www.zhihu.com")")
print(driver.current_url)

python网络爬虫selenium打开多窗口与切换页面的实现

当前页面依然还是百度。要想把当前页面换成知乎,还需要继续用代码切换过来。

打印 句柄 ,即driver的 window_handles 属性,输出结果如下:

print(driver.window_handles)

python网络爬虫selenium打开多窗口与切换页面的实现

是一个有两个元素的列表,分别代表上边打开的两个网页,百度和知乎。

分别将其传入switch_to.window()方法中,再打印当前页面的url,输出结果如下,可以看到,页面成功被切换。

win1 = driver.window_handles[0]
driver.switch_to.window(win1)
print(driver.current_url)

time.sleep(2)

win2 = driver.window_handles[1]
driver.switch_to.window(win2)
print(driver.current_url)

python网络爬虫selenium打开多窗口与切换页面的实现

关于句柄在列表中的顺序,
建议一般最好只额外打开一个网页,不建议打开更多的网页进行切换。当打开的网页数量超过两个时,句柄列表中的元素分别代表哪个网页,其顺序是不太好确定的。以下面代码为例,其顺序如下。

from selenium import webdriver
import time

driver = webdriver.Chrome()

driver.get("https://www.baidu.com/")

# 打开一个新的页面
driver.execute_script("window.open("https://www.zhihu.com")")
driver.execute_script("window.open("https://www.lagou.com/")")
driver.execute_script("window.open("https://www.jianshu.com/")")

win1 = driver.window_handles[0]
driver.switch_to.window(win1)
print(driver.current_url)

time.sleep(2)

win2 = driver.window_handles[1]
driver.switch_to.window(win2)
print(driver.current_url)

time.sleep(2)

win3 = driver.window_handles[2]
driver.switch_to.window(win3)
print(driver.current_url)

time.sleep(2)

win4 = driver.window_handles[3]
driver.switch_to.window(win4)
print(driver.current_url)

输出结果如图,句柄的第一个元素表示我们第一次打开的主网页界面,
然后我们依次打开了知乎、拉钩、简书,但是句柄列表第二三四个元素依次表示的是简书、拉钩、知乎。
可以认为其从第二个元素往后是与我们代码写入的顺序是相反的。

python网络爬虫selenium打开多窗口与切换页面的实现

 到此这篇关于python网络爬虫selenium打开多窗口与切换页面的实现的文章就介绍到这了,更多相关python selenium多窗口与切换页面内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/weixin_48964486/article/details/122700477

延伸 · 阅读

精彩推荐
  • PythonPython反射和内置方法重写操作详解

    Python反射和内置方法重写操作详解

    这篇文章主要介绍了Python反射和内置方法重写,结合实例形式较为详细的分析了Python反射概念、原理及内置方法重写相关操作技巧与注意事项,需要的朋友可...

    —super—9752021-03-30
  • Pythondjango实现登录时候输入密码错误5次锁定用户十分钟

    django实现登录时候输入密码错误5次锁定用户十分钟

    这篇文章主要介绍了django实现登录时候输入密码错误5次锁定用户十分钟,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    北漂的雷子5982020-12-15
  • PythonPython 的 Socket 编程

    Python 的 Socket 编程

    这篇文章最初发布的时候标题是“Python的WebSocket编程”,坦白来说有点文不对题。我们在这里打算讨论的仅仅是常规的socket编程。尽管 Web Socket 和常规soc...

    脚本之家4232020-05-24
  • Python解决python3.6 右键没有 Edit with IDLE的问题

    解决python3.6 右键没有 Edit with IDLE的问题

    这篇文章主要介绍了解决python3.6 右键没有 Edit with IDLE的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    颖子的欧巴7982021-09-22
  • Pythonpython实现的多线程端口扫描功能示例

    python实现的多线程端口扫描功能示例

    这篇文章主要介绍了python实现的多线程端口扫描功能,结合实例形式分析了Python基于socket的端口扫描具体步骤与相关操作技巧,需要的朋友可以参考下...

    雪峰流云4822020-09-18
  • Pythonpython实现尼姆游戏

    python实现尼姆游戏

    这篇文章通过详细的python代码实现尼姆游戏,小编觉得挺不错的。现在分享给大家,也给大家做个参考,需要的朋友可以收藏下。一起跟随小编过来看看吧...

    梦幻精灵_cq10312022-03-11
  • Pythonpython不换行之end=与逗号的意思及用途

    python不换行之end=与逗号的意思及用途

    在python中我们偶尔会用到输出不换行的效果,python2中使用逗号,即可,而python3中使用end=''来实现的,这里简单为大家介绍一下,需要的朋友可以参考下...

    脚本之家7572020-12-19
  • PythonPython中可变和不可变对象的深入讲解

    Python中可变和不可变对象的深入讲解

    python与C/C++不一样,它的变量使用有自己的特点,学python的时候一定要记住一切皆为对象,一切皆为对象的引用,这篇文章主要给大家介绍了关于Python中可变和不...

    小菠萝测试笔记10592021-12-16