场景为数据需要在某网站进行对比,再进行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'

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