zoukankan      html  css  js  c++  java
  • 基于selenium使用多台虚拟机过滤存储数据

    场景为数据需要在某网站进行对比,再进行mysql数据库的存储,数据的对比分析不是重点,重点在于如何处理网络问题,以及mysql数据存储和本地文件保存的操作,如何统一管理好多台虚拟机是本文章的重点内容!

    上图是统一的账号管理,因为网站登录不是单独一个账号,而是多个账号登录,个人认为将所有的账号放入数据库管理是一个比较好的方法。

    def email():
        conn = pymysql.connect(**config2)
        cursor = conn.cursor()
        sql = "SELECT * FROM `account_email`"
        cursor.execute(sql)
        result = cursor.fetchall()
        # 提交
        conn.commit()
        # 关闭链接
        cursor.close()
        conn.close()
        return result
    
    
    email_list = email()
    account = email_list[0]['account']

     这样就可以一劳永逸,在第一次写好代码之后就不需要手动输入邮箱了!第一次编写记得修改索引值。

    接下来就是获取数据的方式了:

     

    大家应该可以看到我在C盘根目录放了两个文件,内容并不重要,重点是为什么要放在C盘根目录,原因其实很清楚,为了方便在每台机器上进行管理,所有的机器都使用的是windows的系统,这样放置文件当然可以做到统一管理,写好一次代码,所有的机器都可以进行使用了!

    接下来就是处理网络问题的代码:

            if self.driver.find_elements_by_xpath('//div[contains(text(),"ERR_CONNECTION_RESET")]'):
                print('IP FAILED')
                return 'over'
        

      这串xpath的代码大家是可以通用的,在遇到网络不佳无法访问的情况就会退出,而我选择的并不是大家常见的This site cant reach to,因为浏览器可能是不同语言环境的,所以不一定检索的到,而我写的xpath是可以通用的。

            if self.driver.find_elements_by_xpath('//span[@data-test-id="maximum-searches"]'):
                if self.driver.find_element_by_xpath('//span[@data-test-id="maximum-searches"]'):
                    print('Max Search!')
                    return 'over'

    这串代码是在目标网站出现限制情况下的退出代码,仅针对于目标网站出现问题时而使用,不可通用,仅供大家参考!

  • 相关阅读:
    redis集群学习
    Java -cp 命令行引用多个jar包的简单写法(Windows、Linux
    内部类的继承
    NIO的epoll空轮询bug
    linux下socket的连接队列的 backlog的分析
    jQuery animate动画 stop()方法详解~
    jQuery插件之Cookie插件使用方法~
    jQuery中 pageX,clientX,offsetX,layerX的区别
    JavaScript 中一些概念理解 :clientX、clientY、offsetX、offsetY、screenX、screenY
    jQuery $.fn 方法扩展~
  • 原文地址:https://www.cnblogs.com/abc1997/p/15480552.html
Copyright © 2011-2022 走看看