记录——影刀RPA高级操作题(二)——使用影刀RPA内置包和”Xpath“获取数据,获取数据写入目标MySQL

# 使用提醒:
# 1. xbot包提供软件自动化、数据表格、Excel、日志、AI等功能
# 2. package包提供访问当前应用数据的功能,如获取元素、访问全局变量、获取资源文件等功能
# 3. 当此模块作为流程独立运行时执行main函数
# 4. 可视化流程中可以通过"调用模块"的指令使用此模块

import xbot
from xbot import print, sleep, web
from .import package
from .package import variables as glv
import re
import math
import mysql.connector

def main(args):
    
    pass


def data():
    '''获取数据'''
    web_page = xbot.web.create(url="http://www.boxofficecn.com/the-red-box-office", mode="chrome")
    sum_data = re.search(r'共 (d+) 项',web_page.find_by_xpath('//div[@id="tablepress-4_info"]').get_text()).group(1)
    sum_page = math.ceil(int(sum_data) / 50)
    sum_data = []
    for idx in range(sum_page):
        mv_ele = web_page.find_all_by_xpath('//tbody/tr')
        for obj in mv_ele:
            mv_name = obj.children()[1].get_text().split("(")[0]
            mv_year = obj.children()[0].get_text()
            mv_diqu = country(obj.children()[0].children()[0].get_attribute("src"))
            mv_denshu = obj.children()[1].get_text().split("(")[1].replace(")",'')
            mv_daoyan = obj.children()[2].get_text()
            mv_piaofan = re.findall(r'd+',obj.children()[3].get_text())[0]
            sum_data.append(tuple([mv_name,mv_year,mv_diqu,mv_denshu,mv_daoyan,mv_piaofan,"林丑丑"]))
        next_page_ele = web_page.find_by_xpath("//div[@id='tablepress-4_paginate']/a[2]")
        next_page_ele.click()
    print(f"需要写入数据库数据:{sum_data}")
    web_page.close()
    #数据写入数据库
    write_sql(sum_data)
    return None


def country(country_url):
    data = {
        "https://s.w.org/images/core/emoji/12.0.0-1/svg/1f1e8-1f1f3.svg":"中国",
        "https://s.w.org/images/core/emoji/12.0.0-1/svg/1f1fa-1f1f8.svg":"美国",
        "https://s.w.org/images/core/emoji/12.0.0-1/svg/1f1ee-1f1f3.svg":"印度",
        "https://s.w.org/images/core/emoji/12.0.0-1/svg/1f1ef-1f1f5.svg":"日本",
        "https://s.w.org/images/core/emoji/12.0.0-1/svg/1f1ec-1f1e7.svg":"英国",
        "https://s.w.org/images/core/emoji/12.0.0-1/svg/1f1eb-1f1f7.svg":"法国",
        "https://s.w.org/images/core/emoji/12.0.0-1/svg/1f1eb-1f1ee.svg":"芬兰",
        "https://s.w.org/images/core/emoji/12.0.0-1/svg/1f1e6-1f1fa.svg":"美国"
    }
    if country_url in data:
        return data[country_url]
    else:
        return None


def Connection_locat():
    '''连接数据库'''
    try:
        mydb = mysql.connector.connect(
            host="43.143.30.32",
            user="yingdao",
            password="9527",
            database="ydtest",
            charset='utf8'
        )
        if mydb.is_connected():
            return mydb
    except Exception as e:
        print(f"数据库连接失败:{e}")


    
def write_sql(data):
    '''获取到的数据写入数据库'''
    mydb = Connection_locat()
    mycursor = mydb.cursor()
    try:
        sql = "INSERT INTO movies (电影名称, 上映年份, 制片地区, 评分, 导演, 票房, 提交人) VALUES (%s, %s, %s, %s, %s, %s, %s)"
        mycursor.executemany(sql, data)
        mydb.commit()
        print("成功写入数据")
    except Exception as e:
         print(f"写入数据失败:{e}")
    finally:
        mycursor.close()
        mydb.close()
UiPath目前已掌握的程度(单选) 刚刚起步学习 已经通过L1:FoundationTraining 已通过L2:OrchestratorTraining 已通过L3:AdvancedTraining 在https://platform.uipath.com/中注册账号并登录;这里建议全部使用英文,不要用中文。至于注册的步骤,想必大家都很清楚,我就不用再啰嗦了。 注册完之后,登录到系统中,增加点击Services,增加一个自己的账户。 增加服务时,填写里面的个数时,尽量根据下面的提示,有2个可用,就填写2,有1个可用,就填写1. 点击自己刚刚新增的账户,就会进入到管理界面 可以在左下角设定界面的语言。 启动本地机器人,会显示在屏幕的右下角。 点击鼠标右键,会出现下面的界面,选择【OrchestratorSettings】 复制机器名称【Machine Name】 切换到Orchestrator管理界面,增加一个标准机器,并将复制的机器名称粘贴到这里 点击加号,选择【标准机器人】,粘贴刚刚复制的机器名称,点配置 点击下图中的编辑,即可查看MachineKey 新建一个标准机器人,输入本地计算机的账号密码,类型为Development 创建步骤如下: 切换到环境,新建一个环境 输入新环境的名称,点击创建 在新建的环境中,指定刚刚新建的机器人 点击计算机,选择刚刚建立的标准机器,复制MachineKey 点击本地机器人,选择连接Orchestrator, A:在URL中输入第一步的网址 B:在MachineKey中,粘贴MachineKey 最后一步:在本机机器人连接成功的状态下,点击发布,即可将本地流程发布到Orchestrator上。 发布成功之后会弹出下面的框 目前本地机器人流程还是空的 发布之后,我们切换到Orchestrator上,选择流程,点击加号,选择我们刚刚发布的流程,最后点击创建。 现在我们在左键点击屏幕右下角的本地机器人图标,会出现 点击最右侧的下载图标,进行安装,安装好之后,点击它即可执行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值