第一题

流程截图

Python代码段

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import pandas as pd

df=pd.DataFrame(list1)
df["票房"]=df["票房"].astype(int)
df=df.groupby("制片地区")["票房"].sum().reset_index()
df=df.sort_values(by="票房",ascending=False).head(3)
df.insert(0,"提交人","Tetuka")
res=df.values.tolist()
#3.0-3.5
df=pd.DataFrame(list1)
df=df[(df.评分!="-")]
df["评分"]=df["评分"].astype(float)
df["票房"]=df["票房"].astype(int)
df=df[(df.评分>=3.0) & (df.评分<=3.5)]
n1=df["票房"].sum()
res.append(["Tetuka","3.0-3.5",int(n1)])

#9.0-9.5
df=pd.DataFrame(list1)
df=df[(df.评分!="-")]
df["票房"]=df["票房"].astype(int)
df["评分"]=df["评分"].astype(float)
df=df[(df.评分>=9.0) & (df.评分<=9.5)]
n2=df["票房"].sum()
res.append(["Tetuka","9.0-9.5",int(n2)])

#无评分
df=pd.DataFrame(list1)
df["票房"]=df["票房"].astype(int)
df=df[(df.评分=="-")]
n3=df["票房"].sum()
res.append(["Tetuka","无评分",int(n3)])
print(res)

mysql运行结果

第二题

python代码段

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# 使用提醒:
# 1. xbot包提供软件自动化、数据表格、Excel、日志、AI等功能
# 2. package包提供访问当前应用数据的功能,如获取元素、访问全局变量、获取资源文件等功能
# 3. 当此模块作为流程独立运行时执行main函数
# 4. 可视化流程中可以通过"调用模块"的指令使用此模块

import xbot,pymysql
from xbot import print, sleep
from .import package
from .package import variables as glv

def recountry(c):
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":"芬兰"
}
if c in data:
return data[c]
else:
return None

def main(args):
webpage = xbot.web.create(url="http://www.boxofficecn.com/the-red-box-office")
res = []
for i in range(9):
web1 = webpage.find_all_by_xpath('//tbody/tr')
for j in web1:
mname = j.children()[1].get_text().split("(")[0]
year = j.children()[0].get_text().replace(" ","")
country = recountry(j.children()[0].children()[0].get_attribute("src"))
score = j.children()[1].get_text().split("(")[1].replace(")","").replace(" ","").replace("-","0")
director = j.children()[2].get_text()
mbo = j.children()[3].get_text().replace(" ","").replace("&","").replace(" ","").replace("↗","")
res.append([mname,year,country,score,director,mbo,"Tetuka"])
nextpage = webpage.find_by_xpath("//div[@id='tablepress-4_paginate']/a[2]")
nextpage.click()
print(res)
webpage.close()

#数据写入数据库
conn=pymysql.connect(host="192.168.48.129",user="root",password="root123456",
database="test",charset="utf8")
insertdata=conn.cursor()
for i in res:
sql=f"insert into movie values('{i[0]}','{i[1]}','{i[2]}','{i[3]}','{i[4]}','{i[5]}','{i[6]}')"
insertdata.execute(sql)
conn.commit()
insertdata.close()
conn.close()

mysql运行结果