Selenium切换窗口句柄及调用谷歌浏览器

Batkid0 2019-03-03

一. 调用Chrome浏览器

首先,假设通过Firefox()浏览器定向爬取CSDN首页导航栏信息,审查元素代码如下图所示,在div class="menu"路径的ul、li、a下,同时可以定位ul class="clearfix"。

Selenium切换窗口句柄及调用谷歌浏览器

代码如下所示:

Selenium切换窗口句柄及调用谷歌浏览器

然后转换成chrome浏览器,只需要在

"C:Program Files (x86)GoogleChromeApplication"路径下放置个chromedriver.exe驱动,再进行调用即可,代码如下所示:

Selenium切换窗口句柄及调用谷歌浏览器

运行结果如下图所示:

Selenium切换窗口句柄及调用谷歌浏览器

二. 获取当前句柄并切换窗口句柄

在使用Selenium爬取知识过程,通常会遇到_blank弹出新窗体,或窗体是弹出的那种情况,而且有的需要登录,如:新浪微博、微信公众号、京东等,使用webdriver.Firefox()重新打开新窗体是无法加载已有信息的。这时候就需要通过获取当前句柄再进行窗口切换。

这里使用该方法实现获取CSDN导航栏的每条导航的标题信息,因为它是_blank弹出新窗体。需要注意每次窗口句柄移动都需要重新定位它们的主窗体。

核心代码:

Selenium切换窗口句柄及调用谷歌浏览器

如下图所示:<a href="xxxx" target="_blank">极客头条</a>

Selenium切换窗口句柄及调用谷歌浏览器

实例代码如下所示,它会依次打开每个导航栏,在爬取关闭。

Selenium切换窗口句柄及调用谷歌浏览器

输出结果如下所示:

Selenium切换窗口句柄及调用谷歌浏览器

PS:这段代码主要是让你熟悉获取当前窗体及切换窗体,真正爬虫用到的时候是非常方便的,而且必须要使用。

Selenium切换窗口句柄及调用谷歌浏览器

三. 一段代码 在线笔记

下面这段代码是我的在线笔记,由于代码非常有用,所以我隐藏了些东西,但绝对好用,而且是结合上面的内容。同时,在登录过程中,我建议大家time.sleep()函数暂停,输入验证码、扫描二维码都是可行的。

Selenium切换窗口句柄及调用谷歌浏览器

最后,想学习Python的小伙伴们!

请关注+私信回复:“学习”就可以拿到一份我为大家准备的Python学习资料!

Selenium切换窗口句柄及调用谷歌浏览器

pytyhon学习资料

Selenium切换窗口句柄及调用谷歌浏览器

python学习资料

相关推荐