import xbot
from xbot import print, sleep
from .import package
from .package import variables as glv
import html
import pd,re,requests
def main(args):
def movie_analysis():
# 打开网页
url = "http://www.boxofficecn.com/the-red-box-office"
response = requests.get(url)
# 使用xpath获取评分、电影名称、制片地区
tree = html.fromstring(response.content)
# 获取电影名称,评分
movie = tree.xpath('//*[@id="tablepress-4"]/tbody/tr/td[2]/text()[1]')
# 获取上映年份
years = tree.xpath('//*[@id="tablepress-4"]/tbody/tr/td[1]/text()')
# 获取制片地区
regions = tree.xpath('//*[@id="tablepress-4"]/tbody/tr/td[1]/img/@alt')
# 获取导演
director = tree.xpath('//*[@id="tablepress-4"]/tbody/tr/td[3]/text()')
# 获取票房
box_office = tree.xpath('//*[@id="tablepress-4"]/tbody/tr/td[4]/text()|//*[@id="tablepress-4"]/tbody/tr/td[4]/font')
# 获取各列的长度
lengths = [len(years), len(movie), len(regions), len(director), len(box_office)]
# 找到最小长度
min_length = min(lengths)
# 截断或填充各列数据,使它们的长度一致
years = years[:min_length]
movie = movie[:min_length]
regions = regions[:min_length]
director = director[:min_length]
box_office = box_office[:min_length]
# 将评分、电影名称、制片地区数据获取到表格里面
data = {'上映年份': years, '电影': movie, '制片地区': regions,'导演':director,'票房':box_office}
df = pd.DataFrame(data)
# 新增提交人列
df['提交人'] = 'Iisi11'
# 对电影列进行拆分
df['电影名称'] = df['电影'].apply(lambda x: re.match(r'(.+?)((\d+\.\d+))', x).group(1))
df['评分'] = df['电影'].apply(lambda x: float(re.match(r'(.+?)((\d+\.\d+))', x).group(2)))
# 选取需要的列
df_result = df[['电影名称', '上映年份', '制片地区','评分', '导演', '票房','提交人']]
print(df_result)
df_result.to_excel(r'C:\Users\gexueyan95\Desktop\111.xlsx', index=False)
return df_result