影刀RPA高级操作题(二)

# 使用提醒:

# 1. xbot包提供软件自动化、数据表格、Excel、日志、AI等功能

# 2. package包提供访问当前应用数据的功能,如获取元素、访问全局变量、获取资源文件等功能

# 3. 当此模块作为流程独立运行时执行main函数

# 4. 可视化流程中可以通过"调用模块"的指令使用此模块

from xbot import web

import xbot

from xbot import print, sleep

from .import package

from .package import variables as glv

import time

import pymysql

import re

import math

import xbot.web

# 提交人 换成自己的名字,file_path设置成自己的文本路径  编码问题

def main(args):

    pass

file_path = r'C:\Users\1111\Desktop\测试 (2).txt'

def data():

    '''获取数据'''

    web_page = xbot.web.create(url="https://www.endata.com.cn/BoxOffice/BO/History/Movie/Alltimedomestic.html")

    fanye = web_page.find_by_xpath('//*[@id="layui-laypage-1"]').children()

    count = 0

    for i in fanye:

        if i.get_text().isdigit():

            count += 1

    for i in range(int(count) + 1):

        i = i+1

        quanbu = web_page.find_all_by_xpath('//tbody/tr/td/a')

        for suoyin,dys in enumerate(quanbu):

            ab = dys.get_attribute('href')

            ss = 'https://www.endata.com.cn' + ab

            # print(ab)

            web_dg = xbot.web.create(url=ss)

            time.sleep(3)

            g = r'(//*[@id="mv-Basic"]/dd[{}]/a)'.format(suoyin+1)

            名字 = web_dg.find_by_xpath('//*[@id="Minfo"]/div[2]/div[2]/div[1]/h3').get_text()

            try:

                # 尝试使用第一个XPath表达式获取票房数据

                导演s = web_dg.find_by_xpath(g).get_text()

                票房 = web_dg.find_by_xpath('//*[@id="Minfo"]/div[2]/div[2]/div[1]/div/div/strong').get_text()

            except Exception:

                try:

                # 如果第一个XPath表达式失败,尝试使用第二个XPath表达式

                    导演s = web_dg.find_by_xpath('//*[@id="mv-Basic"]/dd[1]/a').get_text()

                    票房 = web_dg.find_by_xpath('//*[@id="Minfo"]/div[2]/div[2]/div[1]/div/div[2]/strong').get_text()

                except Exception as e:

                 # 如果两个XPath表达式都失败了,打印错误信息,并设置票房为空字符串或其他默认值

                    print(f"无法获取票房数据: {e}")

                    票房 = "" 

                    导演s ='' 

            海报链接 = ss        

            上映年份 = web_dg.find_by_xpath('//*[@id="Minfo"]/div[2]/div[2]/div[2]/p[4]').get_text()

            上映年份 = re.search('\d+',上映年份).group()

            制片地区 = web_dg.find_by_xpath('//*[@id="Minfo"]/div[2]/div[2]/div[2]/p[5]').get_text()

            提交人 = '1111'

            ssm = '电影名称:' + 名字,'上映年份:' + 上映年份,'制片地区:' + 制片地区,'海报链接:'+海报链接,'导演:'+ 导演s,'票房:'+ 票房,'提交人:' + 提交人

            print('电影名称:' + 名字,'上映年份:' + 上映年份,'制片地区:' + 制片地区,'海报链接:'+海报链接,'导演:'+ 导演s,'票房:'+ 票房,'提交人:' + 提交人)

            with open(file_path,'a+') as f:

                f.write(str(ssm) + '\n')

            time.sleep(3)

        web.close_all('cef')

        try:

            web_page = xbot.web.create(url="https://www.endata.com.cn/BoxOffice/BO/History/Movie/Alltimedomestic.html")

            zzbds = '//*[@id="layui-laypage-1"]/a[{}]'.format(i)

            fanye = web_page.find_by_xpath(zzbds).click()

        except Exception:

            pass



 

def read_and_insert_data(file_path):

    '''从文件读取数据并插入数据库'''

    # 连接到数据库

    mydb = pymysql.connect(

        host="43.143.30.32",

        port=3306,

        user="yingdao",

        password="9527",

        database="ydtest",

        charset='utf8'

    )

    mycursor = mydb.cursor()

    # SQL插入语句

    sql = """

    INSERT INTO movies (电影名称, 上映年份, 制片地区, 海报链接, 导演, 票房, 提交人)

    VALUES (%s, %s, %s, %s, %s, %s, %s)

    """

    # 读取文件

    with open(file_path, 'r', encoding='gbk') as file:

        for line in file:

            # 去掉行尾的换行符

            line = line.strip()

            # 分割每一行数据

            data_items = line.split(', ')

            # 解析数据

            movie_name = data_items[0].split(':')[1]

            release_year = data_items[1].split(':')[1]

            production_area = re.sub(r'国家及地区:', '', data_items[2].split(':')[1]).strip()

            poster_link = data_items[3].split(':', 1)[1].strip()

            director = data_items[4].split(':')[1]

            box_office = re.sub(r'万', '', data_items[5].split(':')[1]).strip()

            submitter = data_items[6].split(':')[1]

            # 构建数据元组

            data = (

                movie_name,

                release_year,

                production_area,

                poster_link,

                director,

                box_office,

                submitter

            )

            print(data)

            # 打印数据

            # print('电影名称:', movie_name, '上映年份:', release_year, '制片地区:', production_area, '海报链接:', poster_link, '导演:', director, '票房:', box_office, '提交人:', submitter)

            # 插入数据到数据库

            try:

                mycursor.execute(sql, data)

                mydb.commit()

                print("数据插入成功")

            except Exception as e:

                mydb.rollback()

                print(f"发生错误: {e}")

    # 最后关闭游标和数据库连接

    mycursor.close()

    mydb.close()

data()

read_and_insert_data(file_path)

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、付费专栏及课程。

余额充值