一.selenium的介绍

1、selenium是什么?

selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法执行javaScript代码的问题。

官网:http://selenium-python.readthedocs.io

2、为什么要用selenium?

selenium可以驱动浏览器自动执行自定义好的逻辑代码,也就是可以通过代码完全模拟成人类使用浏览器自动访问目标站点并操作,那我们也可以拿它来做爬虫。

  selenium本质上是通过驱动浏览器,完全模拟浏览器的操作,比如跳转、输入、点击、下拉等...进而拿到网页渲染之后的结果,可支持多种浏览器。
那么对于爬虫来说,用它有没有好处?有,好处就是可以帮我们避开一系列复杂的通信流程,例如在我们之前学习的requests模块,那么requests模块在模拟请求的时候是不是需要把素有的通信流程都分析完成后才能通过请求,然后返回响应。假如目标站点有一系列复杂的通信流程,例如的登录时的滑动验证等...那么你使用requests模块的时候是不是就特别麻烦了。不过你也不需要担心,因为网站的反爬策略越高,那么用户的体验效果就越差,所以网站都需要在用户的淫威之下降低安全策略。
再看一点requests请求库能不能执行js?是不是不能呀!那么如果你的网站需要发送ajax请求,异步获取数据渲染到页面上,是不是就需要使用js发送请求了。那浏览器的特点是什么?是不是可以直接访问目标站点,然后获取对方的数据,从而渲染到页面上。那这些就是使用selenium的好处!
那用它有没有坏处?使用selenium本质上是驱动浏览器对目标站点发送请求,那浏览器在访问目标站点的时候,是不是都需要把静态资源都加载完毕。html、css、js这些文件是不是都要等待它加载完成。是不是速度特别慢。那用它的坏处就是效率极低!所以我们一般用它来做登录验证。

二 安装

'''
selenium支持多种浏览器,但是在使用前必须去下载与浏览器相对应的驱动。
'''
from selenium import webdriver
# 谷歌浏览器
browser=webdriver.Chrome()
# 火狐浏览器
browser=webdriver.Firefox()
# 无界面浏览器
browser=webdriver.PhantomJS()
# 苹果浏览器
browser=webdriver.Safari()
# IE浏览器
browser=webdriver.Edge() '''
安装selenium与谷歌驱动:selenium + chromedriver下载selenium模块:pip3 install selenium下载chromed浏览器驱动:把下载好的chromedriver.exe放到python安装路径的scripts目录中即可,注意最新版本是2.38,并非2.9- 国内镜像网站地址:http://npm.taobao.org/mirrors/chromedriver/2.38/- 最新的版本去官网找:https://sites.google.com/a/chromium.org/chromedriver/downloads验证安装:- 进入python解释器:>>> C:\Users\Administrator>python3>>> Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 18:41:36) [MSC v.1900 64 bit (AMD64)] on win32>>> Type "help", "copyright", "credits" or "license" for more information.>>> from selenium import webdriver>>> driver=webdriver.Chrome() #弹出浏览器>>> driver.get('https://www.baidu.com')>>> driver.page_source注意:selenium3默认支持的webdriver是Firfox,而Firefox需要安装geckodriver下载链接:https://github.com/mozilla/geckodriver/releases'''

三 基本使用

1、示例一

from selenium import webdriver  # 用来驱动浏览器的
from selenium.webdriver import ActionChains  # 破解滑动验证码的时候用的 可以拖动图片
from selenium.webdriver.common.by import By  # 按照什么方式查找,By.ID,By.CSS_SELECTOR
from selenium.webdriver.common.keys import Keys  # 键盘按键操作
from selenium.webdriver.support import expected_conditions as EC  # 和下面WebDriverWait一起用的
from selenium.webdriver.support.wait import WebDriverWait  # 等待页面加载某些元素
import timetry:driver = webdriver.Chrome()driver.get('https://www.baidu.com')wait = WebDriverWait(driver, 10)input_tag = wait.until(EC.presence_of_element_located((By.ID, 'kw')))input_tag.send_keys('美女')input_tag.send_keys(Keys.ENTER)time.sleep(5)finally:driver.close()

转载于:https://www.cnblogs.com/promiss911/p/11100047.html

Day.04 selenium的基础相关推荐

  1. web自动化测试入门篇04——selenium+python基础方法封装

  2. proteus仿真micropython_【雕爷学编程】MicroPython动手做(04)——零基础学MaixPy之尝试运行...

    1.hello micropython #MicroPython动手做(04)--零基础学MaixPy之基本示例 #程序之一:hellomicropython #MicroPython动手做(04)- ...

  3. PHP全站开发工程师-第04章 PHP基础语法

    第二阶段(后端) 25天 144学时 第04章 PHP基础语法(12) [学习课时] 本章共需要学习12 课时 [目的要求]  掌握PHP的基本语法结构 掌握PHP变量的使用和特征 掌握PHP运算符的 ...

  4. Web自动化【selenium】基础知识

    selenium自动化基础知识点 目录 selenium自动化基础知识点 一.Selenium是什么? 二.使用步骤 1.引入库 2.下载对应的浏览器驱动 3.基本使用 三.元素定位 1.特点 2.八 ...

  5. 【恋上数据结构与算法 第二季】【04】图-基础实现_遍历_拓扑排序

    持续学习&持续更新中- 学习态度:脚踏实地 [恋上数据结构与算法 第二季][04]图-基础实现_遍历_拓扑排序 图的实现方案 邻接矩阵 邻接表 图的基础接口 顶点.边的定义 图的基础实现 图的 ...

  6. selenium 控制ie_牛鹭学院:selenium入门基础及中级进阶

    本文来自牛鹭学院学员:胡伟进 Selenium 是一个 web 应用程序自动化测试的工具合集.包括有测试.屏幕抓取.浏览器行为模拟(爬虫).支持的浏览器有 Firefox.IE.Chrom.safar ...

  7. 动态网站开发讲课笔记04:Servlet基础

    文章目录 零.本节学习目标 一.Servlet基础 (一)Servlet概述 1.Servlet是什么 2.Servlet容器 3.Servlet应用程序的体系结构 (二)Servlet的特点 1.功 ...

  8. selenium的基础知识点

    from selenium import webdriver from scrapy.selector import Selector#模拟登陆 browser = webdriver.Chrome( ...

  9. PYTHON 爬虫笔记七:Selenium库基础用法

    知识点一:Selenium库详解及其基本使用 什么是Selenium selenium 是一套完整的web应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(Selenium ...

最新文章

  1. C# 函数覆盖总结学习
  2. Java中Collection和Collections的区别
  3. 注册不到两年半Github标星39k+,吴恩达、李航老师的作品的笔记和代码实现
  4. 什么是Github的元数据metadata以及如何备份github上的数据
  5. 在WebGL场景中进行棋盘操作的实验
  6. 史上最简单的决策树模型讲解
  7. keil3如何放大字体_Word技巧之快速放大字体!快来GET新技能!
  8. Django 框架篇(七) : 中间件 以及 5种方法
  9. C++Primer第5版学习笔记(一)
  10. centos7.1下的mariadb数据库数据出现不支持中文问题
  11. mac终端命令大全介绍
  12. python中的round
  13. mybatis mysql begin end_sql中的begin....end
  14. ArcGIS插件安装通用问题汇总
  15. fwr310刷openwrt_迅捷FWR310无线路由器的刷机
  16. python游戏源码——2绘画简易坦克
  17. 华为交换机:利用Excel转换MAC地址公式
  18. Linux-SO_REUSEPORT特性
  19. VS2019 配色_NBA球员上脚:基德穿AJ13湖人配色,莫兰特的保罗乔治4代
  20. GIF一下你也可以拍大片 微影戏程序

热门文章

  1. win7下不能替换系统文件的解决办法
  2. 调用函数,求a+aa+aaa+....+aa...aa(n个a)
  3. C语言文件操作基本常识
  4. Spring学习总结二
  5. ${}和#{}的区别
  6. kibana7.x操作
  7. STM32开发 -- 蓝牙开发详解(1)
  8. 揭开知识库问答KB-QA的面纱4·向量建模篇
  9. 一图简述大数据技术生态圈
  10. JZOJ 5473. 【NOIP2017提高组正式赛】小凯的疑惑