• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Python中Selenium库使用教程详解

python 搞代码 4年前 (2022-01-07) 27次浏览 已收录 0个评论

这篇文章主要介绍了Python中Selenium库使用教程详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

selenium介绍

selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题 selenium本质是通过驱动浏览器,完全模拟浏览器的操作,比如跳转、输入、点击、下拉等,来拿到网页渲染之后的结果,可支持多种浏览器

中文参考文档

官网

环境安装

下载安装selenium

 pip install selenium -i https://mirrors.aliyun.com/pypi/simple/

谷歌浏览器驱动程序下载地址:

http://chromedriver.storage.googleapis.com/index.html

使用示例

 from selenium import webdriver from time import sleep # 实例化一款浏览器 bor = webdriver.Chrome(executable_path='chromedriver.exe') # 对指定的url发起请求 bor.get('https://www.jd.com/') sleep(1) # 进行标签定位 search_input = bor.find_element_by_id('key') # 向搜索框中录入关键词 search_input.send_keys("mac pro") # 点击搜索按钮 btn = bor.fin<div style="color:transparent">来源gaodai^.ma#com搞#代!码网</div>d_element_by_xpath('//*[@id="search"]/div/div[2]/button') btn.click() sleep(2) # 执行js,让滚轮向下滚动 bor.execute_script('window.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 webdriver browser = webdriver.Chrome() browser = webdriver.Firefox() browser = webdriver.Edge() browser = webdriver.PhantomJS() browser = webdriver.Safari()

元素定位

webdriver 提供了一系列的元素定位方法,常用的有以下几种:

定位一个元素 定位多个元素 含义
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),二者得到的结果完全一致。

实例演示

假如有一个web页面,通过前端工具查看到一个元素的属性是这样的。

      <span></span>

通过id定位:

 dr.find_element_by_id("kw")

通过name定位:

 dr.find_element_by_name("wd")

通过class name定位:

 dr.find_element_by_class_name("s_ipt")

通过tag name定位:

 dr.find_element_by_tag_name("input")

通过xpath定位,xpath定位有N种写法,这里列几个常用写法:

 dr.find_element_by_xpath("//*[@]") dr.find_element_by_xpath("//*[@name='wd']") dr.find_element_by_xpath("//input[@]") dr.find_element_by_xpath("/html/body/form/span/input") dr.find_element_by_xpath("//span[@]/input") dr.find_element_by_xpath("//form[@]/span/input") dr.find_element_by_xpath("//input[@ and @name='wd']")

通过css定位,css定位有N种写法,这里列几个常用写法:

 dr.find_element_by_css_selector("#kw") dr.find_element_by_css_selector("[name=wd]") dr.find_element_by_css_selector(".s_ipt") dr.find_element_by_css_selector("html > body > form > span > input") dr.find_element_by_css_selector("span.soutu-btn> input#kw") dr.find_element_by_css_selector("form#form > span > input")

假如页面上有如下一组文本链接

 新闻hao123

通过link text定位:

 dr.find_element_by_link_text("新闻") dr.find_element_by_link_text("hao123")

通过partial link text定位:

 dr.find_element_by_partial_link_text("新") dr.find_element_by_partial_link_text("hao") dr.find_element_by_partial_link_text("123")

控制浏览器

常用的控制浏览器操作的一些方法

方法 说明
set_window_size() 设置浏览器的大小
back() 控制浏览器后退
forward() 控制浏览器前进
refresh() 刷新当前页面
clear() 清除文本
send_keys (value) 模拟按键输入
click() 单击元素
submit() 用于提交表单
get_attribute(name) 获取元素属性值
is_displayed() 设置该元素是否用户可见
size 返回元素的尺寸
text 获取元素的文本

以上就是Python中Selenium库使用教程详解的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Python中Selenium库使用教程详解

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址