Python中Selenium库使用教程详解
selenium介绍
selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行Javascript代码的问题 selenium本质是通过驱动浏览器,完全模拟浏览器的操作,比如跳转、输入、点击、下拉等,来拿到网页渲染之后的结果,可支持多种浏览器
中文参考文档
官网
环境安装
下载安装selenium
pip install selenium -i https://mirrors.aliyun./pypi/simple/
谷歌浏览器驱动程序下载地址
http://chromedriver.storage.googleapis./index.html
使用示例
from selenium import ebdriver
from time import sleep
# 实例化一款浏览器
bor = ebdriver.Chrome(executable_path='chromedriver.exe')
# 对指定的url发起请求
bor.get('https://.jd./')
sleep(1)
# 进行标签定位
search_input = bor.find_element_by_id('key')
# 向搜索框中录入关键词
search_input.send_keys("mac pro")
# 点击搜索按钮
btn = bor.find_element_by_xpath('//[@id="search"]/div/div[2]/button')
btn.click()
sleep(2)
# 执行js,让滚轮向下滚动
bor.execute_script('indo.scrollTo(0, document.body.scrollHeight)')
sleep(2)
page_text = bor.page_source
print(page_text)
bor.quit()
浏览器创建
Selenium支持非常多的浏览器,如Chrome、Firefox、Edge等,还有Android、BlackBerry等手机端的浏览器。,也支持无界面浏览器PhantomJS。
from selenium import ebdriver broser = ebdriver.Chrome() broser = ebdriver.Firefox() broser = ebdriver.Edge() broser = ebdriver.PhantomJS() broser = ebdriver.Safari()
元素定位
ebdriver 提供了一系列的元素定位方法,常用的有以下几种
定位一个元素
定位多个元素
含义
find_element_by_id
find_elements_by_id
通过元素id定位
find_element_by_name
find_elements_by_name
通过元素name定位
find_element_by_xpath
find_elements_by_xpath
通过xpath表达式定位
find_element_by_link_text
find_elements_by_link_tex
通过完整超链接定位
find_element_by_partial_link_text
find_elements_by_partial_link_text
通过部分链接定位
find_element_by_tag_name
find_elements_by_tag_name
通过标签定位
find_element_by_class_name
find_elements_by_class_name
通过类名进行定位
find_elements_by_css_selector
find_elements_by_css_selector
通过css选择器进行定位
注意
1、find_element_by_xxx找的是第一个符合条件的标签,find_elements_by_xxx找的是所有符合条件的标签。
2、根据ID、CSS选择器和XPath获取,它们返回的结果完全一致。
3、,Selenium还提供了通用方法find_element(),它需要传入两个参数查找方式By和值。实际上,它就是find_element_by_id()这种方法的通用函数版本,比如find_element_by_id(id)就等价于find_element(By.ID, id),二者得到的结果完全一致。
实例演示
假如有一个eb页面,通过前端工具查看到一个元素的属性是这样的。
空调维修
- 我的世界电脑版运行身份怎么弄出来(我的世界
- 空调抽湿是什么意思,设置抽湿的温度有什么意
- 方太燃气灶有一个打不着火 怎么修复与排查方法
- 夏季免费清洗汽车空调的宣传口号
- 清洗完空调后出现漏水现象
- iphone6能玩什么游戏(iphone6游戏)
- 如何设置电脑密码锁屏(如何设置电脑密码锁屏
- win10删除开机密码提示不符合密码策略要求
- 电脑w7显示不是正版(w7不是正版怎么解决)
- 万家乐z8热水器显示e7解决 怎么修复与排查方法
- 1匹空调多少瓦数(1匹空调多少瓦)
- 安卓手机连接电脑用什么软件好(关于安卓手机
- 电脑网页看视频卡是什么原因(爱拍看视频卡)
- 华帝燃气灶点火器一直响然后熄火怎么办:问题
- 电脑壁纸怎么换(关于电脑壁纸怎么换的介绍)
- 冬天空调的出风口应该朝什么方向(冬天空调风