欢迎关注”生信修炼手册”!

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自动化操作浏览器相关推荐

  1. 技术学习:Python(21)|爬虫篇|selenium自动化操作浏览器

    ​ 活动地址:CSDN21天学习挑战赛 前言 Selenium是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE(7, 8, 9 ...

  2. Selenium+phanmJs 操作浏览器 爬取数据

    什么是selenium? 是Python的一个第三方库,对外提供的接口可以操作浏览器,然后让浏览器完成自动化的操作. 环境搭建 安装selenum:pip install selenium 获取某一款 ...

  3. java selenium (十) 操作浏览器

    本篇文章介绍selenium 操作浏览器 阅读目录 浏览器最大化 前进,后退, 刷新 public static void testBrowser(WebDriver driver) throws E ...

  4. Java自动化(操作浏览器)

    Window下环境配置 第一步:下载最新的chrome浏览器版本 第二步:查看版本  下载对应版本的ChromeDriver或下载对应版本的ChromeDrive 第三步:将下载好的ChromeDri ...

  5. Python selenium自动化操作Chrome浏览器

    ​ ​ 活动地址:CSDN21天学习挑战赛 文章目录 一.Selenium搭建环境 1.安装 2.安装Chrome安装浏览器驱动WebDriver 1)查看Chrome浏览器版本 2)在驱动器版本里选 ...

  6. python+Selenium自动化操作Chrome模拟手机浏览器

    在使用Chrome浏览网页时,我们可以使用Chrome开发者工具模拟手机浏览器,在使用Selenium操作Chrome时同样也可以模拟手机浏览器.主要有以下两种用途. 测试H5页面在不同分辨率设备上的 ...

  7. Python+selenium 自动化-操作已启用的chrome浏览器实例演示,chrome启用调试端口方法

    首先在 chrome 快捷方式的目标后面加上这个参数. 前面是代表调试端口,可以随便用端口,后面指向一个新的文件夹用于存储用户数据. 注: 后面的参数如果不加上,端口启用好像会失败,目前没有找到原因. ...

  8. python自动化操作浏览器

    python的语法精炼简洁,并且很方便集成自动化工具selenium,因此特别适合各个行业的工作人员学习和编写简单程序来实现"机器人助理"帮我们处理频繁重复的网站操作. 废话不多说 ...

  9. linux网页自动化,使用 Selenium 自动化 Web 浏览器

    Selenium 是浏览器自动化的绝佳工具.使用 Selenium IDE,你可以录制命令序列(如单击.拖动和输入),验证结果并最终存储此自动化测试供日后使用.这非常适合在浏览器中进行活跃开发.但是当 ...

最新文章

  1. 弹出框口登录php代码,如何用JQuery写出登录弹出框
  2. Codeforces 576D Flights for Regular Customers (图论、矩阵乘法、Bitset)
  3. 使用 qemu 搭建内核开发环境
  4. 服务器上的Linux中Tomcat有时会挂掉的问题及方法
  5. C#的COM接口定义细则
  6. linux+系统优化基础,linux系统优化基础
  7. 第3章   IP寻址
  8. 想赚钱是好事,但盲目创业就容易悲剧
  9. Android MuPDF 阅读PDF文件
  10. 自动驾驶落地物流场景,嬴彻科技驶入快车道
  11. CCD相机参数基本知识
  12. 我的HIFI WAV 播放器设计之二电路图数字电路部分
  13. 辽宁中职升高职计算机考试,2021年_辽宁省_中职升高职高考真题
  14. 安超云生态 | 安超云与数科网维联合推出“医疗全场景档案云共享解决方案”
  15. 考研资料分享——百度网盘获取
  16. cmd脚本编程基础命令
  17. 汽车软件竞争进入“深水区”,诚迈科技如何抢滩?
  18. 使用Python实现超级趋势指标(Super Trend Indicator)
  19. Adobe Acrobat更改注释的作者姓名
  20. C语言程序设计(第三版)何钦铭著 习题4-6

热门文章

  1. 5G网络用户面时延测量
  2. 树莓派制作无线路由器
  3. 前端开发全家桶:UI组件 开发框架 服务端 辅助工具 应用实例 Demo示例
  4. 郑州轻工业大学OJ python 1060: 逆序数字
  5. Project Server 2016 部署
  6. 用html5做心,HTML5 Canvas实现玫瑰曲线和心形图案的代码实例
  7. 三菱 plc远程调试及上下载方法
  8. cron 每隔3天_crontab实现每隔多少天执行一次脚本的两种方法
  9. oracle范围分区合并,ORACLE 范围分区 partition-range分区
  10. 企业内部流程运转受阻?免费又高效不愧是它