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

简介: 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)

在这里插入图片描述
当前页面依然还是百度。要想把当前页面换成知乎,还需要继续用代码切换过来。

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

print(driver.window_handles)

在这里插入图片描述
是一个有两个元素的列表,分别代表上边打开的两个网页,百度和知乎。

分别将其传入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)

在这里插入图片描述


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

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)

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

目录
相关文章
|
11月前
|
机器学习/深度学习 算法 安全
【PSO-LSTM】基于PSO优化LSTM网络的电力负荷预测(Python代码实现)
【PSO-LSTM】基于PSO优化LSTM网络的电力负荷预测(Python代码实现)
455 0
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
1474 55
|
9月前
|
机器学习/深度学习 大数据 关系型数据库
基于python大数据的青少年网络使用情况分析及预测系统
本研究基于Python大数据技术,构建青少年网络行为分析系统,旨在破解现有防沉迷模式下用户画像模糊、预警滞后等难题。通过整合多平台亿级数据,运用机器学习实现精准行为预测与实时干预,推动数字治理向“数据驱动”转型,为家庭、学校及政府提供科学决策支持,助力青少年健康上网。
|
数据采集 Web App开发 JavaScript
基于Selenium的Python爬虫抓取动态App图片
基于Selenium的Python爬虫抓取动态App图片
1069 68
|
10月前
|
机器学习/深度学习 算法 PyTorch
【Pytorch框架搭建神经网络】基于DQN算法、优先级采样的DQN算法、DQN + 人工势场的避障控制研究(Python代码实现)
【Pytorch框架搭建神经网络】基于DQN算法、优先级采样的DQN算法、DQN + 人工势场的避障控制研究(Python代码实现)
264 1
|
10月前
|
机器学习/深度学习 算法 PyTorch
【DQN实现避障控制】使用Pytorch框架搭建神经网络,基于DQN算法、优先级采样的DQN算法、DQN + 人工势场实现避障控制研究(Matlab、Python实现)
【DQN实现避障控制】使用Pytorch框架搭建神经网络,基于DQN算法、优先级采样的DQN算法、DQN + 人工势场实现避障控制研究(Matlab、Python实现)
413 0
|
11月前
|
机器学习/深度学习 算法 调度
基于遗传算法GA算法优化BP神经网络(Python代码实现)
基于遗传算法GA算法优化BP神经网络(Python代码实现)
648 0
|
11月前
|
机器学习/深度学习 数据采集 TensorFlow
基于CNN-GRU-Attention混合神经网络的负荷预测方法(Python代码实现)
基于CNN-GRU-Attention混合神经网络的负荷预测方法(Python代码实现)
581 0
|
12月前
|
存储 监控 算法
基于 Python 跳表算法的局域网网络监控软件动态数据索引优化策略研究
局域网网络监控软件需高效处理终端行为数据,跳表作为一种基于概率平衡的动态数据结构,具备高效的插入、删除与查询性能(平均时间复杂度为O(log n)),适用于高频数据写入和随机查询场景。本文深入解析跳表原理,探讨其在局域网监控中的适配性,并提供基于Python的完整实现方案,优化终端会话管理,提升系统响应性能。
294 4
|
数据采集 存储 监控
Python 原生爬虫教程:网络爬虫的基本概念和认知
网络爬虫是一种自动抓取互联网信息的程序,广泛应用于搜索引擎、数据采集、新闻聚合和价格监控等领域。其工作流程包括 URL 调度、HTTP 请求、页面下载、解析、数据存储及新 URL 发现。Python 因其丰富的库(如 requests、BeautifulSoup、Scrapy)和简洁语法成为爬虫开发的首选语言。然而,在使用爬虫时需注意法律与道德问题,例如遵守 robots.txt 规则、控制请求频率以及合法使用数据,以确保爬虫技术健康有序发展。
1609 31

热门文章

最新文章

推荐镜像

更多