pythonwebdriver教程_Python爬⾍Selenium库详细教程
本⽂的⽂字及图⽚来源于⽹络,仅供学习、交流使⽤,不具有任何商业⽤途,如有问题请及时以作处理。python 爬虫教学
以下⽂章来源于Python程序员
刚接触Python的新⼿、⼩⽩,可以复制下⾯的链接去免费观看Python的基础⼊门教学视频
在我们爬取⽹页过程中,经常发现我们想要获得的数据并不能简单的通过解析HTML代码获取,这些数据是通过AJAX异步加载⽅式或经过JS渲染后才呈现在页⾯上显⽰出来。
selenuim是⼀种⾃动化测试⼯具,它⽀持多种浏览器。⽽在爬⾍中,我们可以使⽤它来模拟浏览器浏览页⾯,进⽽解决JavaScript渲染的问题。
1. 使⽤⽰例
2. 详细介绍
2.1 声明浏览器对象
即告诉程序,应该使⽤哪个浏览器进⾏操作
2.2 访问页⾯
2.3 查元素
成功访问⽹页后,我们可能需要进⾏⼀些操作,⽐如到搜索框然后输⼊关键字再敲击回车键。
因此,就需要在selenium中查元素。
2.3.1 单个元素
selenium查元素有两种⽅法。
第⼀种,是指定使⽤哪种⽅法去查元素,⽐如指定依照CSS选择或者依照xpath去进⾏查
下⾯是详细的元素查⽅法
find_element_by_name
find_element_by_xpath
find_element_by_link_text
find_element_by_partial_link_text
find_element_by_tag_name
find_element_by_class_name
find_element_by_css_selector
第⼆种,是直接使⽤find_element(),传⼊的第⼀个参数为需要使⽤的元素查⽅法
2.3.2 多个元素
查多个元素和查单个元素的⽅法基本⼀致(只需要将查单个元素的func⾥加⼀个s)。
查多个元素返回的是⼀个list。
2.4 元素交互操作
元素交互是先获取⼀个元素,然后对获取的元素调⽤交互⽅法。
⽐如说在搜索框内输⼊⽂字:
2.5 交互动作
交互动作是将动作附加到交互链中串⾏执⾏,需要使⽤到ActionChains。
2.6 执⾏JavaScript
⽐如拖拽下拉
2.7 获取元素信息
已经通过元素查获取到元素后,可能还需要获取这个元素的属性、⽂本
2.7.1 获取属性
2.8 Frame
如果定位到⽗frame,是⽆法查到⼦frame的信息的,因此需要切换到⼦frame再进⾏查。同理,在⼦frame也⽆法查到⽗frame的信息
2.9 等待
请求⽹页时,可能会存在AJAX异步加载的情况。⽽selenium只会加载主⽹页,并不会考虑到AJAX的情况。因此,使⽤时需要等待⼀些时间,让⽹页加载完全后再进⾏操作。
2.9.1 隐式等待
使⽤隐式等待时,如果webdriver没有到指定的元素,将继续等待。超出规定时间后,如果还是没有到指定元素则抛出不到元素的异常。默认等待时间为0。
隐式等待是对整个页⾯进⾏等待。
需要特别说明的是:隐性等待对整个driver的周期都起作⽤,所以只要设置⼀次即可。
2.9.2 显式等待
显⽰等待包含了等待条件和等待时间。
⾸先判定等待条件是否成⽴,如果成⽴,则直接返回;如果条件不成⽴,则等待最长时间为等待时间,如果超过等待时间后仍然没有满⾜等待等待条件,则抛出异常。
显式等待是对指定的元素进⾏等待。
2.10 浏览器的前进/后退
back实现回到前⼀页⾯,forward实现前往下⼀页⾯
2.11 对Cookies进⾏操作
2.12 选项卡管理
选项卡管理就是浏览器的标签。有些时候我们需要在浏览器⾥增加⼀个新标签页或者删除⼀个标签页,就可以使⽤selenium来实现。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论