zoukankan      html  css  js  c++  java
  • python3使用selenium3的坑

    网络看了很多的文章,大部分都是不完整, 还有很多误导性极强的教程 ,特别是chromedriver这东西.简直一堆坑.

    一首先是安装python3.6.5

    root@ubuntu:~# add-apt-repository ppa:jonathonf/python-3.6

    root@ubuntu:~# apt-get update

    root@ubuntu:~# apt-get install python3.6

    root@ubuntu:~# python3.6

    如果出现以下内容证明成功:

    Python 3.6.5 (default, May  3 2018, 10:08:28)
    [GCC 5.4.0 20160609] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>>

    二:设置默认python3对应为python3.6

     root@ubuntu:~# update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 1

    root@ubuntu:~# update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 2

    root@ubuntu:~# update-alternatives --config python3

    看到以下内容:

    There are 2 choices for the alternative python3 (providing /usr/bin/python3).


      Selection    Path                Priority   Status
    ------------------------------------------------------------
    * 0            /usr/bin/python3.6   2         auto mode
     1            /usr/bin/python3.5   1         manual mode
     2            /usr/bin/python3.6   2         manual mode
    Press <enter> to keep the current choice[*], or type selection number:

    回车完毕

    三:升级pip3

    root@ubuntu:~# apt-get install python3-pip

    root@ubuntu:~# pip3 install --upgrade pip

    四:安装selenium

    root@ubuntu:~# pip3 install selenium

    五:安装chrome浏览器

    下载谷歌浏览器的deb安装包

    ##  https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb

    $sudo apt install libappindicator1 libindicator7

    $sudo dpkg -i google-chrome-stable_current_amd64.deb

    $sudo apt -f install        ####修复依赖关系

    六:安装chromedriver

        chromedriver版本对照表如下

    ChromeDriver v2.41 (2018-07-07)----------Supports Chrome v67-69

    ChromeDriver v2.40 (2018-06-07)----------Supports Chrome v66-68
    ChromeDriver v2.39 (2018-05-30)----------Supports Chrome v66-68
    ChromeDriver v2.38 (2018-04-17)----------Supports Chrome v65-67
    ChromeDriver v2.37 (2018-03-16)----------Supports Chrome v64-66
    ChromeDriver v2.36 (2018-03-02)----------Supports Chrome v63-65
    ChromeDriver v2.35 (2018-01-10)----------Supports Chrome v62-64

    比如要按照自己系统chrome浏览器版本下载对应chromedriver版本
    将下载chromedriver放到/usr/bin/下
    === 代码需要指定chromedriver的路径,不是系统chrome浏览器的路径,这个要千万注意.如下:
    chromedriver = "/usr/local/bin/chromedriver"
    os.environ["webdriver.chrome.driver"] = chromedriver
    driver = webdriver.Chrome(chromedriver)
    driver.get(url="https://www.qq.com")
    测试以上代码,如果chrome浏览器能正常出来并打开qq那就是chromedriver已安装好.
    原本路径可以直接写到系统的环境变量里的,只可惜,如果这样做,crontab去调用chrome的时候就是报错.

    === 如需要将脚本放到crontab里去执行需要原来的执行命令前加上 export DISPLAY=:0&& 如下
    export DISPLAY=:0&&/usr/bin/python3 /apps/run_brower_text.py >> /apps/auto.log 2>&1



  • 相关阅读:
    java发送http的get、post请求
    spring boot注解 --@EnableAsync 异步调用
    java代码将e.printStackTrace()写入log4j文件异常信息
    Mybatis 传入List类型参数,报错:There is no getter for property named '__frch_item_0' in
    mongodb 只查询一个字段
    如何在java List中进行模糊查询
    java操作Mongodb
    java操作mongodb时,对象bean和DBObject相互转换的方法
    java 字符串,字符数组,list间的转化
    ldconfig 让安装的 php 的rdkafka生效
  • 原文地址:https://www.cnblogs.com/yehui/p/9390219.html
Copyright © 2011-2022 走看看