前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用selenium自动化操作浏览器

使用selenium自动化操作浏览器

作者头像
生信修炼手册
发布2020-11-02 10:46:33
9430
发布2020-11-02 10:46:33
举报
文章被收录于专栏:生信修炼手册

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操作浏览器的最基本使用方式,代码如下

代码语言:javascript
复制
>>> 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

代码语言:javascript
复制
>>> 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·

—如果喜欢,快分享给你的朋友们吧—

原创不易,欢迎收藏,点赞,转发!生信知识浩瀚如海,在生信学习的道路上,让我们一起并肩作战!

本公众号深耕耘生信领域多年,具有丰富的数据分析经验,致力于提供真正有价值的数据分析服务,擅长个性化分析,欢迎有需要的老师和同学前来咨询。

更多精彩

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信修炼手册 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档