栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

selenium学习

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

selenium学习

selenium

selenium原本使用来做自动化测试的,在爬虫中应用于模拟用户使用浏览器,爬取一些加密复杂的网站,致命缺点就是太慢了。

selenium安装与配置环境

要使用这个模块首先要安装这个模块,在pycharm终端pip可以直接下载。

pip install selenium

安装好模块之后还要下载一个浏览器驱动。根据浏览器不同,下载对应的浏览器驱动。以下均已谷歌浏览器为例。
Google浏览器驱动.


根据浏览器版本下载相应版本的浏览器驱动(在谷歌浏览器右上角的三个点里找到帮助–>关于谷歌可以查看自己浏览器的版本),如果找不到版本对应的浏览器驱动,就下载比自己版本低一级的浏览器驱动,照样能用。(如上图,直接下载 94.0.4606.61版本的驱动),点击进去后,按照系统选择下载,windows操作系统都是下载win32版本。下载完成之后直接把驱动移到和python解释器同一级目录下。

名字只能为这个,记得重命名改成这个:chromedriver(后缀不管)。

selenium基本操作
from selenium.driver import Chrome //根据浏览器导入相应模块,以谷歌为例
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
web = Chrome() //定义一个对象
web.get('https://www.baidu.com') //打开百度
//利用XPATH找到百度的搜索框(f12开发者工具可以查看)
//web.find_element(By.xxx,''),通过xxx方式查找element,后面直接带xxx的值
//By.xxx需要导入By模块
//.send_keys表示向这个element输入一个值'python'
//Key.ENTER表示输入完之后按下回车,使用Keys需要导入对应模块
web.find_element(By.XPATH, '//*[@id="changeCityBox"]/p[1]/a').send_keys('python',Keys.ENTER)

selenium窗口切换

因为selenium默认不切换窗口

web.switch_to.window(web.window_handles[-1])  // 切换到最后一个窗口
web.close() //关闭当前窗口
//当前窗口关闭后,selenium的视角依旧在被关闭的窗口上,所以还需要将它切换回来
web.switch_to.window(web.window_handles[0])
selenium报错(当前只遇到三种,后续补上)

1.elenium.common.exceptions.ElementClickInterceptedException: Message: element click inte
原因:元素定位相互覆盖。
解决方案:js注入
报错代码:

window.find_element(By.XPATH, './div[1]/div[1]/div[1]/a/h3').click()

更改后:

element1 = window.find_element(By.XPATH, './div[1]/div[1]/div[1]/a/h3') 
web.execute_script("arguments[0].click();", element1)

2.selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference
这种代码多半是你的网速太慢,跟不上爬虫爬取的速度,网页还未加载完全,爬虫就开始了爬取工作。这里建议你把电脑拿去转转app卖了或者是导入time模块使用time.sleep()让你的爬虫休眠几秒,等到浏览器加载完成后继续工作。
3.selenium.common.exceptions.NoSuchElementException后面还一串忘了
这个是没有查找到你想要的element,重新检查find_element

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/339203.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号