• Centeos7搭建selenium+Chrome浏览器


    博主主要是用来更新爬虫Cookie

    环境安装

    python3 安装selenium  

    pip3 install selenium

    安装chrome浏览器+chromedriver驱动

    一.配置yum源

    1.在目录 /etc/yum.repos.d/ 下新建文件 google-chrome.repo 

            

    vi /etc/yum.repos.d/google-chrome.repo
    

    2.写入如下代码:

    [google-chrome] 
    name=google-chrome 
    baseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearch 
    enabled=1 
    gpgcheck=1 
    gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub

      使用vi在命令行编辑:(详细参考https://blog.csdn.net/u013142781/article/details/50735470)

      按下a键使用insert功能来添加修改文件

      修改完成后按下ESC键进入末行模式   然后输入 :q保存  :wq保存退出

    二.安装google chrome浏览器

    yum update     #更新yum源
    yum -y install google-chrome-stable    #安装

    Google官方源可能在中国无法使用,导致安装失败或者在国内无法更新,可以添加以下参数来安装:

    yum -y install google-chrome-stable --nogpgcheck

    三.添加软连接

    注意:源文件删除后软连接无法使用  ls查看

    which google-chrome-stable   #寻找chrome路径
    ln -s 路径 /bin/chrome         #查询到的路径 添加软连接

    四.下载chromedriver驱动

    https://chromedriver.storage.googleapis.com/index.html?

    下载对应版本的驱动(两个都下载最新的应该没问题),对应表参考:(版本不兼容会出现下面类似的报错)



    ChromeDriver v2.43 (2018-10-16)----------Supports Chrome v69-71
    ChromeDriver v2.42 (2018-09-13)----------Supports Chrome v68-70
    ChromeDriver v2.41 (2018-07-27)----------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
    Exception in thread "main" org.openqa.selenium.WebDriverException: unknown error: call function result missing 'value'
     
      (Session info: chrome=65.0.3325.31)
      (Driver info: chromedriver=2.33.506120 (e3e53437346286c0bc2d2dc9aa4915ba81d9023f),platform=Windows NT 6.1.7601 SP1 x86) 
    (WARNING: The server did not provide any stacktrace information)
    Command duration or timeout: 0 milliseconds

    使用xftp复制下载好的文件到服务器执行如下代码:

    chmod +x chromedriver #增加可执行权限
    
    #移动文件到该路径
    sudo mv -f chromedriver /usr/local/share/chromedriver 
    #添加软连接(链接存在会报错,直接跳过即可)
    sudo ln -s /usr/local/share/chromedriver /usr/local/bin/chromedriver 
    sudo ln -s /usr/local/share/chromedriver /usr/bin/chromedriver

    注意:

      对于root用户不能运行chrome

      编辑启动文件: vim /opt/google/chrome/google-chrome 将最后一行改写为: exec -a "$0" "$HERE/chrome" "$@" --no-sandbox $HOME

    因为我这里用的是无界面显示,所以就不装Xvfb,pyvirtualdisplay了

    到这里环境安装完毕

    下面附上获取网站cookie的代码(模拟登陆什么的自己研究吧,我这里就给个获取cookie的示例)

    #centeos 携程cookie更新
    
    from selenium import webdriver
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.chrome.options import Options
    import pymysql
    
    
    
    options = webdriver.ChromeOptions()
    options.add_argument('--headless')#无界面
    driver = webdriver.Chrome(executable_path="chromedriver",chrome_options=options)
    url = "https://www.ly.com/iflight/flight-book1.aspx?para=0*SHA*MLE*2019-10-10**YSCF*1*0*1&advanced=false&orgAirCode=false&desAirCode=false"
    wait = WebDriverWait(driver,10)#10s等待响应
    try:   #发生错误结束浏览器,防止占用资源,导致服务器崩溃(也可以在程序开头添加os模块检测chrome进程,每次运行先杀死)
        driver.get(url)
    
        message = driver.get_cookies() #获取当前页面的cookie
        l = ""
        for i in message:
            name = i["name"] + '=' + i["value"] + ';'
            l = l + name
        print(l)
        driver.quit()
    except:
        driver.quit()

    添加linux定时任务定时更新cookie:

     

    crontab -e  #编辑定时任务
    crontab -l   #查看定时任务
    #下面给出几个例子
    #每天凌晨30分更新
    30 0 * * * python3 /root/global_spider2/global_cn/all_global.py 
    #每3个小时更新
    * */3 * * * python3 /root//国内外机票cookie更新/domestic_cookie.py
    #每2个小时更新一次 
    * */2 * * * python3 /root/国内外机票cookie更新/china_ctrip.py

    更多有关于定时任务的操作  https://www.cnblogs.com/zoulongbin/p/6187238.html

     

  • 相关阅读:
    SharePoint Error occurred in deployment step 'Recycle IIS Application Pool': 0x80070005:拒绝访问
    Getting SharePoint objects (spweb, splist, splistitem) from url string
    SharePoint 2010用“localhost”方式访问网站,File not found问题处理方式
    在 SharePoint 2010 打开网页出错时,显示实际的错误信息
    解决 SharePoint 2010 拒绝访问爬网内容源错误的小技巧(禁用环回请求的两种方式)
    SQL Server 删除数据库所有表和所有存储过程
    SQL Server 查询数据库表的列数
    SQL Server 自定义字符串分割函数
    sp_configure命令开启组件Agent XPs,数据库计划(Maintenance Plan)
    SQL Server 2008 收缩日志(log)文件
  • 原文地址:https://www.cnblogs.com/lyxdw/p/9882083.html
Copyright © 2020-2023  润新知