简介

Selenium是一个用于Web应用程序测试的工具。

Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Firefox,Safari,Chrome,Opera等。

这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。

而用在爬虫上则是模拟正常用户访问网页并获取数据。我们可以利用它来模拟用户点击访问网站,绕过一些复杂的认证场景

通过selenium + 驱动浏览器这种组合可以直接渲染解析js,绕过大部分的参数构造和反爬

注意事项:

新版本的Selenium已经不支持phantomis,原作者也已经放弃维护该项目了。


安装

ChromeDriver(浏览器驱动)安装

使用selenium驱动chrome浏览器需要下载chromedriver,而且chromedriver版本需要与chrome的版本对应,版本错误的话则会运行报错。

Chromedriver下载地址:http://chromedriver.storage.googleapis.com/index.html

or https://sites.google.com/a/chromium.org/chromedriver/downloads

Chromedriver与Chrome版本映射表:

chromedriver版本 支持的Chrome版本
v2.37 v64-66
v2.36 v63-65
v2.35 v62-64
v2.34 v61-63
v2.33 v60-62
v2.32 v59-61
v2.31 v58-60
v2.30 v58-60
v2.29 v56-58
v2.28 v55-57
v2.27 v54-56
v2.26 v53-55
v2.25 v53-55
v2.24 v52-54
v2.23 v51-53

Mac/Linux

下载完成解压后,将文件移动至/usr/local/bin目录中,则可以正常使用。

Windows

下载完成解压后,将文件移动到一个配置了环境变量的文件夹中,例如你的Python安装文件夹。

将解压的exe文件放在环境变量下是为了方便使用,如果不在环境变量中,还可以在代码里面声明驱动的位置。

但是为了方便项目部署的,或者为了方便容易打包,我们可以将Chromedriver.exe放到我们的项目目录中,

然后再初始化Chrome Webdriver对象时,传入chromedirver.exe的路径

如下所示:

from selenium import webdriver
browser = webdriver.Chrome(executable_path='chromedriver.exe')

引号之内的就是路径,可根据自己文件的放置情况来填写

PhantomJS的安装

下载链接,下载好的压缩文件解压到环境变量中,建议解压到Python中,安全起见,将Phantomjs.exe文件复制一份放在Python3文件夹下。

Selenium安装

Selenium的安装非常简单,直接pip就可以搞定。

pip install selenium

简单使用

现在运行一个空白页面的浏览器窗口

from selenium import webdriver
from selenium.webdriver.chrome.options import Options # 实例化一个启动参数对象
chrome_options = Options()
# 设置浏览器窗口大小
chrome_options.add_argument('--window-size=1366,768')
# 启动浏览器
browser = webdriver.Chrome(chrome_options=chrome_options)

点击运行,就会自动弹出一个空白的浏览器窗口了

接下来,我们再来尝试访问一下百度的首页面

from selenium import webdriver
from selenium.webdriver.chrome.options import Options # 实例化一个启动参数对象
chrome_options = Options()
# 设置浏览器窗口大小
chrome_options.add_argument('--window-size=1366,768')
# 启动浏览器
browser = webdriver.Chrome(chrome_options=chrome_options)
# 请求百度首页
browser.get('http://www.baidu.com')

这样程序点击运行,弹出的浏览器会自动转到百度的首页了

更加详细的内容,会在接下来的内容中讲到

Selenium的安装和简单实用——PhantomJS安装的更多相关文章

  1. hook框架frida的安装以及简单实用案例

    1.下载地址 https://github.co/frida/frida/releases 2.另外两种安装方法 1.Install from prebuilt binaries This is th ...

  2. 实战ELK(3) Kibana安装与简单实用

    第一步:下载 https://artifacts.elastic.co/downloads/kibana/kibana-6.5.1-x86_64.rpm 第二步:安装 1.安装 yum install ...

  3. sqoop安装与简单实用

    一,sqoop安装 1.解压源码包 2.配置环境变量 3.在bin目录下的 /bin/configsqoop 注释掉check报错信息 4.配置conf目录下 /conf/sqoop-env.sh 配 ...

  4. Linux下Libevent安装和简单实用

    前言 Libevent 是一个用C语言编写的.轻量级的开源高性能事件通知库,主要有以下几个亮点:事件驱动( event-driven),高性能;轻量级,专注于网络,不如 ACE 那么臃肿庞大:源代码相 ...

  5. redis安装与简单实用

    1.在Linux上redis的安装时十分简单的: 第一步:wget http://download.redis.io/releases/redis-2.8.12.tar.gz 解压: tar zxvf ...

  6. Kafka入门 --安装和简单实用

    一.安装Zookeeper 参考: Zookeeper的下载.安装和启动 Zookeeper 集群搭建--单机伪分布式集群 二.下载Kafka 进入http://kafka.apache.org/do ...

  7. Logstash 安装及简单实用(同步MySql数据到Elasticsearch)(Windows)

    Logstash是一款轻量级的日志搜集处理框架,可以方便的把分散的.多样化的日志搜集起来,并进行自定义的处理,然后传输到指定的位置,比如某个服务器或者文件 Windows环境: 1.下载logstas ...

  8. memcached 安装与简单实用使用

    一.简介 1.memcache与memcached的区别与联系: memcache是php的拓展,memcached是客户端,复杂的说:Memcache模块提供了于memcached方便的面向过程及面 ...

  9. Python爬虫框架--Scrapy安装以及简单实用

    scrapy框架 框架 ​ -具有很多功能且具有很强通用性的一个项目模板 环境安装: Linux: ​        pip3 install scrapy ​ ​ ​  Windows: ​     ...

随机推荐

  1. shopnc学习

    ---恢复内容开始--- 以前没有怎么接触过shopnc,感觉界面挺漂亮的,不过后来自己需要开发一个电商系统,就顺便参考了下,感觉构架垃圾的一塌糊涂.不过平时做这个系统二次开发的业务比较多,所以简单的 ...

  2. Centos7 时间不正确修复

    查看系统支持的时区列表 timedatectl list-timezones 使用 date -R 查看时区是否正确 date -R 修改时区 timedatectl set-timezone Asi ...

  3. 9.Hierarchy Editor

    Hierarchy Editor(层次编辑器) 用于定义3D图层的结构,向Ventuz渲染引擎发出“命令”,并指定命令的发生顺序.通常,每个层次节点都会导致对GPU的一个或多个调用,例如设置材质或渲染 ...

  4. Java中 == 和 equals()

    记住三句话 1. 语义上:==指的是内存引用一样.equals是指的是逻辑相等.逻辑相等具体的意思由编写者决定(即在引用类型中,"=="是比较两个引用是否指向堆内存里的同一个地址( ...

  5. python--11、协程

    协程,又称微线程,纤程.英文名Coroutine. 子程序,或者称为函数,在所有语言中都是层级调用,比如A调用B,B在执行过程中又调用了C,C执行完毕返回,B执行完毕返回,最后是A执行完毕. 所以子程 ...

  6. Android生命周期回顾

    先回顾生命周期 Activity一共有3中状态 运行中 Activity位于前台,并具有用户焦点 暂停 另一个Activity位于屏幕前台并具有用户焦点,但此Activity仍可见.也就是说,另一个A ...

  7. SQL基本操作——row_number() over()

    row_number() 与over()是在一起使用的,作用就是对表进行排序并记数. 语法: ROW_NUMBER ( ) OVER ( [ PARTITION BY value_expression ...

  8. 解决springmvc返回json中文乱码

    在pringmvc中通过设置@ResponseBody返回json乱码问题,这个问题上网找了很久,发现答案真是人云亦云,奉上我的解决方案: 解决方案一:需要导入 jackson-core-asl-1. ...

  9. 06--ubuntu的sqlite安装

    知道学习嵌入式技术,数据库是必须懂的,看的书上嵌入式的教程都在用,看来我是非学不可了,下面就简单的记录一下我在Ubuntu 12.04系统上安装 SQLite 的过程以及使用. 相关阅读: SQLit ...

  10. Lazarus Reading XML- with TXMLDocument and TXPathVariable

    也就是使用XPath的方式,具体语法规则查看http://www.w3school.com.cn/xpath/xpath_syntax.asp,说明得相当详细.这里列举例子是说明在Lazarus/FP ...