使用selenium自动化操作浏览器
欢迎关注”生信修炼手册”!
selenium是一个浏览器自动测试工具,通过驱动程序来自动化操作对应的浏览器,包括了打开浏览器窗口,定位元素,点击按钮,上传文件等操作,支持以下多款主流浏览器
selenium借助驱动程序webdriver来驱动相应的浏览器,以最常用的谷歌和火狐浏览器为例,对应的驱动程序如下
1. chromdriver, 谷歌浏览器的驱动程序
2. geckodriver, 火狐浏览器的驱动程序
chromdriver的下载地址如下
>http://chromedriver.storage.googleapis.com/index.html
geckodriver的下载地址如下
>https://github.com/mozilla/geckodriver/releases
需要注意的,要保证驱动程序和浏览器版本的匹配,这样才可以成功驱动浏览器。
在浏览器之中,有一个特殊的浏览器,称之为无头浏览器PhantomJS, 是一个没有GUI界面的浏览器,原生支持命令行运行模式,非常实用linux服务器上的自动化。但是随着该项目没人进一步维护,以及谷歌和火狐浏览器对于无头模式,即headless模式的支持,在python的selenium模块中,更推荐使用火狐和谷歌浏览器。
下面来看下selenium操作浏览器的最基本使用方式,代码如下
>>> from selenium import webdriver
>>> browser = webdriver.PhantomJS()
>>> browser.get('https://www.baidu.com')
>>> browser.close()
上述程序通过webdriver来启动PhantomJS浏览器,然后打开了百度首页,操作完毕之后关闭了浏览器的窗口。
在爬虫程序中,通过自动化操作浏览器,来模拟真实用户的浏览操作,避开了动态资源解析的难点,使得程序的结果和我们在浏览器中获得的结果完全一致,所以selenium是爬虫的一大利器,是解决动态页面的终极武器,但是缺点也很显著,就是速度慢了很多,所以主要应用于复杂网站的资源爬取。
通过selenium模块,还可以实现以下操作
1. 定位元素,就是查找html中的特定元素
2. 操作元素,进行下拉列表的选择,文本框的输入,按钮的提交等操作
1. 定位元素
有多种方法来查找元素,对应find_element系列方法,又可以细分为查找单个元素和多个元素,区别就是多个元素对应的函数名字为find_elements。以查找单个元素为例,有以下几种方法
1. find_element_by_id
2. find_element_by_name
3. find_element_by_xpath
4. find_element_by_link_text
5. find_element_by_partial_link_text
6. find_element_by_tag_name
7. find_element_by_class_name
8. find_element_by_css_selector
2. 操作元素
常用的操作元素的方法有以下几种
1. send_keys, 填写文本框或者上传文件
2. submit, 提交表单
3. select_by_index, 选择下拉列表
4. save_screenshot, 保存网页截图
下面是一个简单的案例,通过selenium来自动化操作百度检索,关键词为python
>>> from selenium import webdriver
>>> browser = webdriver.PhantomJS()
>>> browser.get('https://www.baidu.com')
>>> browser.find_element_by_id('kw').send_keys('python')
>>> browser.find_element_by_id('su').submit()
>>> print(browser.page_source)
>>> browser.close()
通过selenium, 我们可以方便的操作浏览器,从而巧妙回避普通爬虫程序遇到的动态页面解析的难点,对于处理复杂网页而言,特别的好用。
·end·
—如果喜欢,快分享给你的朋友们吧—
原创不易,欢迎收藏,点赞,转发!生信知识浩瀚如海,在生信学习的道路上,让我们一起并肩作战!
本公众号深耕耘生信领域多年,具有丰富的数据分析经验,致力于提供真正有价值的数据分析服务,擅长个性化分析,欢迎有需要的老师和同学前来咨询。
更多精彩
KEGG数据库,除了pathway你还知道哪些
全网最完整的circos中文教程
DNA甲基化数据分析专题
突变检测数据分析专题
mRNA数据分析专题
lncRNA数据分析专题
circRNA数据分析专题
miRNA数据分析专题
单细胞转录组数据分析专题
chip_seq数据分析专题
Hi-C数据分析专题
HLA数据分析专题
TCGA肿瘤数据分析专题
基因组组装数据分析专题
CNV数据分析专题
GWAS数据分析专题
2018年推文合集
2019年推文合集
写在最后
转发本文至朋友圈,后台私信截图即可加入生信交流群,和小伙伴一起学习交流。
扫描下方二维码,关注我们,解锁更多精彩内容!
一个只分享干货的
生信公众号
使用selenium自动化操作浏览器相关推荐
- 技术学习:Python(21)|爬虫篇|selenium自动化操作浏览器
活动地址:CSDN21天学习挑战赛 前言 Selenium是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE(7, 8, 9 ...
- Selenium+phanmJs 操作浏览器 爬取数据
什么是selenium? 是Python的一个第三方库,对外提供的接口可以操作浏览器,然后让浏览器完成自动化的操作. 环境搭建 安装selenum:pip install selenium 获取某一款 ...
- java selenium (十) 操作浏览器
本篇文章介绍selenium 操作浏览器 阅读目录 浏览器最大化 前进,后退, 刷新 public static void testBrowser(WebDriver driver) throws E ...
- Java自动化(操作浏览器)
Window下环境配置 第一步:下载最新的chrome浏览器版本 第二步:查看版本 下载对应版本的ChromeDriver或下载对应版本的ChromeDrive 第三步:将下载好的ChromeDri ...
- Python selenium自动化操作Chrome浏览器
活动地址:CSDN21天学习挑战赛 文章目录 一.Selenium搭建环境 1.安装 2.安装Chrome安装浏览器驱动WebDriver 1)查看Chrome浏览器版本 2)在驱动器版本里选 ...
- python+Selenium自动化操作Chrome模拟手机浏览器
在使用Chrome浏览网页时,我们可以使用Chrome开发者工具模拟手机浏览器,在使用Selenium操作Chrome时同样也可以模拟手机浏览器.主要有以下两种用途. 测试H5页面在不同分辨率设备上的 ...
- Python+selenium 自动化-操作已启用的chrome浏览器实例演示,chrome启用调试端口方法
首先在 chrome 快捷方式的目标后面加上这个参数. 前面是代表调试端口,可以随便用端口,后面指向一个新的文件夹用于存储用户数据. 注: 后面的参数如果不加上,端口启用好像会失败,目前没有找到原因. ...
- python自动化操作浏览器
python的语法精炼简洁,并且很方便集成自动化工具selenium,因此特别适合各个行业的工作人员学习和编写简单程序来实现"机器人助理"帮我们处理频繁重复的网站操作. 废话不多说 ...
- linux网页自动化,使用 Selenium 自动化 Web 浏览器
Selenium 是浏览器自动化的绝佳工具.使用 Selenium IDE,你可以录制命令序列(如单击.拖动和输入),验证结果并最终存储此自动化测试供日后使用.这非常适合在浏览器中进行活跃开发.但是当 ...
最新文章
- 弹出框口登录php代码,如何用JQuery写出登录弹出框
- Codeforces 576D Flights for Regular Customers (图论、矩阵乘法、Bitset)
- 使用 qemu 搭建内核开发环境
- 服务器上的Linux中Tomcat有时会挂掉的问题及方法
- C#的COM接口定义细则
- linux+系统优化基础,linux系统优化基础
- 第3章 IP寻址
- 想赚钱是好事,但盲目创业就容易悲剧
- Android MuPDF 阅读PDF文件
- 自动驾驶落地物流场景,嬴彻科技驶入快车道
- CCD相机参数基本知识
- 我的HIFI WAV 播放器设计之二电路图数字电路部分
- 辽宁中职升高职计算机考试,2021年_辽宁省_中职升高职高考真题
- 安超云生态 | 安超云与数科网维联合推出“医疗全场景档案云共享解决方案”
- 考研资料分享——百度网盘获取
- cmd脚本编程基础命令
- 汽车软件竞争进入“深水区”,诚迈科技如何抢滩?
- 使用Python实现超级趋势指标(Super Trend Indicator)
- Adobe Acrobat更改注释的作者姓名
- C语言程序设计(第三版)何钦铭著 习题4-6