首先上很好用的selenium中文文档,基本上所有问题都能通过阅读此文档解决。可惜好像没找到翻译者名称。

https://python-selenium-zh.readthedocs.io/zh_CN/latest/

安装selenium库以及配置环境

安装就是正常的pip install selenium即可,重点在于配置浏览器驱动。

selenium支持控制chrome,firefox,ie等浏览器,当然也可以反过来说这些浏览器支持被selenium控制。但需要各自配套的浏览器驱动,并且浏览器驱动版本必须和自己安装的浏览器版本同代(比如76.2和76.0.1都是76这样子)。

个人推荐使用chrome,因为文档中给出了chrome的各版本驱动下载链接不用麻烦去找了(https://python-selenium-zh.readthedocs.io/zh_CN/latest/7.6%20%E6%B5%8F%E8%A7%88%E5%99%A8%E9%A9%B1%E5%8A%A8/)。

不过如果真用chrome的话,最好还是翻到官网下推荐的稳定驱动版本(https://sites.google.com/a/chromium.org/chromedriver/downloads)

下载前先在chrome的设置-关于Chrome里找到chrome版本,如图中就是80.0.3987.163:

之后就是在那个链接里找到最接近的版本,浏览器版本对浏览器驱动版本向下兼容(也就是说选择80.0.3987.106的稳定驱动版本是可以运行的)

使用selenium

虽然有开头那个文档就够了,不过大概写一些吧。

1.基本

用browser=webdriver.chrome()就能获得一个chrome浏览器的控制柄类似的实例,其它浏览器同理。

之后用browser.get("website")就能真正地打开一个浏览器窗口,也可以不开,同样只需要对browser设置一下即可。

比较好用的是selenium可以执行javascript代码,实现上滑页面下拉页面之类的。大致用法就是browser.execute_script("js代码")。

用于控制鼠标位置的控制链最开始用起来有点玄学,但基本上按照:定义控制链-定位元素位置-移动鼠标到目标位置-执行点击-perform这个步骤来就不会出错了。代码上的话就类似如下:

# action为行为控制链对象实例
actions=ActionChains(browser)
target=browser.find_element_by_xpath("XPath")
actions.move_to_element(target)
actions.click()
actions.perform()

2.一定要注意驱动版本和浏览器版本对应。如果报错“Unknown Error:call function result missing 'value' ”,就很有可能是因为版本不匹配导致的!

3.如果进行某种操作过后,比如控制鼠标点击了某button,页面的各元素会发生变化的话,这时候就不能再使用同一个actions继续操作页面了,要新定义一个控制链实例。如果报错“stale element reference: element is not attached to the page document”,就要考虑可能是这个原因导致了问题。

4.很多时候光是selenium无法完成所有工作,还是要自己写一些工具类脚本配合使用。又以及和其它库,如BeautifulSoup,urljoin(用来合并相对路径和绝对路径!究极好用!)的联合使用。

python爬虫selenium相关的更多相关文章

  1. python爬虫---selenium库的用法

    python爬虫---selenium库的用法 selenium是一个自动化测试工具,支持Firefox,Chrome等众多浏览器 在爬虫中的应用主要是用来解决JS渲染的问题. 1.使用前需要安装这个 ...

  2. [Python爬虫] Selenium实现自动登录163邮箱和Locating Elements介绍

    前三篇文章介绍了安装过程和通过Selenium实现访问Firefox浏览器并自动搜索"Eastmount"关键字及截图的功能.而这篇文章主要简单介绍如何实现自动登录163邮箱,同时 ...

  3. [Python爬虫] Selenium+Phantomjs动态获取CSDN下载资源信息和评论

    前面几篇文章介绍了Selenium.PhantomJS的基础知识及安装过程,这篇文章是一篇应用.通过Selenium调用Phantomjs获取CSDN下载资源的信息,最重要的是动态获取资源的评论,它是 ...

  4. [Python爬虫] Selenium获取百度百科旅游景点的InfoBox消息盒

    前面我讲述过如何通过BeautifulSoup获取维基百科的消息盒,同样可以通过Spider获取网站内容,最近学习了Selenium+Phantomjs后,准备利用它们获取百度百科的旅游景点消息盒(I ...

  5. [Python爬虫] Selenium爬取新浪微博客户端用户信息、热点话题及评论 (上)

    转载自:http://blog.csdn.net/eastmount/article/details/51231852 一. 文章介绍 源码下载地址:http://download.csdn.net/ ...

  6. [python爬虫] Selenium常见元素定位方法和操作的学习介绍

    这篇文章主要Selenium+Python自动测试或爬虫中的常见定位方法.鼠标操作.键盘操作介绍,希望该篇基础性文章对你有所帮助,如果有错误或不足之处,请海涵~同时CSDN总是屏蔽这篇文章,再加上最近 ...

  7. [python爬虫] Selenium常见元素定位方法和操作的学习介绍(转载)

    转载地址:[python爬虫] Selenium常见元素定位方法和操作的学习介绍 一. 定位元素方法 官网地址:http://selenium-python.readthedocs.org/locat ...

  8. Python爬虫-selenium的使用(2)

    使用selenium打开chrome浏览器百度进行搜索 12345678910111213141516171819202122232425 from selenium import webdriver ...

  9. [python爬虫] Selenium定向爬取海量精美图片及搜索引擎杂谈

    我自认为这是自己写过博客中一篇比较优秀的文章,同时也是在深夜凌晨2点满怀着激情和愉悦之心完成的.首先通过这篇文章,你能学到以下几点:        1.可以了解Python简单爬取图片的一些思路和方法 ...

随机推荐

  1. ceph对接k8s storage class

    简介 对接ceph的rbd和cephfs到k8s中提供持久化存储 环境 主机名 IP role 操作系统 ceph-01 172.16.31.11 mon osd CentOS7.8 ceph-02 ...

  2. linux 怎么样复制文件夹内所有文件到另一个文件夹?

    cp -Rf /home/user1/* /root/temp/将 /home/user1目录下的所有东西拷到/root/temp/下而不拷贝user1目录本身.即格式为:cp -Rf 原路径/ 目的 ...

  3. 十八般武艺玩转GaussDB(DWS)性能调优:SQL改写

    摘要:本文将系统介绍在GaussDB(DWS)系统中影响性能的坏味道SQL及SQL模式,帮助大家能够从原理层面尽快识别这些坏味道SQL,在调优过程中及时发现问题,进行整改. 数据库的应用中,充斥着坏味 ...

  4. Laya 小游戏通用框架设计理念

    当前在用laya做小游戏开发,做了几个项目,总结了一下游戏中所需要的一些模块,大概理了一下,然后写成一套自己习惯使用的框架 总结了一下其中的模块 大概要分为一下模块 1.Base 模块    存放一些 ...

  5. Manjaro Linux 5.9.11-3安装和配置全局截图工具FlameShot教程

    背景说明 截图工具是日常适用频率较高的一种系统工具,在Linux下也有不少常用截图工具,如deepin-screenshot等,但是今天我们要介绍的是FlameShot--一款更加精致的Linux全局 ...

  6. Linux 用户操作之用户管理 (用户增删改操作)

    目录 添加用户 删除用户 修改用户 切换用户 配置用户密码 查看配置文件 cat /etc/pwsswd 添加用户 可选项 -c comment 指定一段注释性描述. -d 目录 指定用户主目录,如果 ...

  7. leetcode 357. 计算各个位数不同的数字个数(DFS,回溯,数学)

    题目链接 357. 计算各个位数不同的数字个数 题意: 给定一个非负整数 n,计算各位数字都不同的数字 x 的个数,其中 0 ≤ x < 10n . 示例: 输入: 2 输出: 91 解释: 答 ...

  8. Kubernetes CoreDNS 状态是 CrashLoopBackOff 报错

    查看状态的时候,遇见coredns出现crashlookbackoff,首先我们来进行排错,不管是什么原因,查看coredns的详细信息,以及logs [root@k8s-master coredns ...

  9. 入门OJ:扫雪

    扫雪1 题目描述 大雪履盖了整个城市,市政府要求冬季服务部门尽快将一些街道(列在一份清单中)的积雪清除掉以恢复交通,整个城市由许多交叉路口和街道构成,当然任意两个交叉路口都是直接或间接连通的,清单给出 ...

  10. HTML基础复习4

    CSS的应用 模块的边框 设置边框样式 border-style::如果是一个值那么表示四个边的样式都一样:如果是两个值那么第一个值代表上下,第二个值代表左右:如果是三个值,第一个值代表上,第二个值代 ...