范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

Python项目实战某瓣热门电影分析(爬虫数据分析)

  项目需求获取某瓣前100名热门电影详细内容,包括:名称、类型、制片国家、语言、上映时间、片长、评分、评价人数。 根据获取的数据分析,包括:上映时间分布情况、评分分布情况、类型分布情况 项目难点获取数据时,有部分内容保存在
  下,无法直接使用Xpath获取 上映时间有多个,按照国内上映时间分布,这里需要处理一下 类型分布中,一个电影多个类型,需要分解处理
  这个是本文的重点。 数据抓取在进行实际的数据抓取的过程中,发现数据实际保存在Json数据包中,原网页无法获取,前100名电影的实际地址。 每一页只显示20个数据,且每次以20个为一组的新增。 Json我们需要的url数据保存在 ["subjects"][m]["url"]  中,其中m为循环,每一组循环20次。 代码实例获取前100名电影的实际url地址  def get_move_url():      move_url = []         for i in range(0,100,20):          url = f"https://xxx.xxx.xxx/j/search_subjects?type=movie&tag=热门&sort=recommend&page_limit=20&page_start={i}"          r_response = get(url=url,headers=headers).json()          for m in range(20):              move_url.append(r_response["subjects"][m]["url"])      return move_url根据每个url地址,获取相应的内容,注意br下内容、上映时间,这里全部处理,并保存excel文件。  def get_data():      move_url = get_move_url()      df = pd.DataFrame(columns=["电影名","电影类型","制片国家","语言","上映时间","片长","评分","评价人数"])      for m in range(len(move_url)):          r_resopnse = get(url=move_url[m],headers=headers).text          res = Selector(r_resopnse)          name = res.xpath("//*[@id="content"]/h1/span[1]/text()").get()          move_type = res.xpath("*//span[@property="v:genre"]/text()").getall()          # ! 上映时间需要处理,以第一个时间为基准,且还要去掉()里面的内容           move_time = res.xpath("*//span[@property="v:initialReleaseDate"]/text()").getall()          move_time = Move_Time(move_time=move_time)          move_len = res.xpath("*//span[@property="v:runtime"]/text()").get()          move_len = Move_Len(move_len=move_len)          move_score = res.xpath("//*[@id="interest_sectl"]/p[1]/p[2]/strong/text()").get()          move_people_num = res.xpath("//*[@id="interest_sectl"]/p[1]/p[2]/p/p[2]/a/span/text()").get()          # ! 语言与制片地区在
  下,需要特殊处理          move_br = res.xpath("/html/body/p[3]/p[1]/p[2]/p[1]/p[1]/p[1]/p[1]/p[2]/descendant-or-self::text()").getall()          for i in range(len(move_br)):              if move_br[i] == "制片国家/地区:":                  country = move_br[i+1]                  # ? 去除里面所有的空格                  move_country = country.replace(" ","")              elif move_br[i] == "语言:":                  language = move_br[i+1]                  move_language = language.replace(" ","")                  # ! 后面就不需要了                  break          df.loc[m]=[name,move_type,move_country,move_language,move_time,move_len,move_score,move_people_num]      df.to_excel("./result.xlsx",index=False)  上映时间的处理(以中国上映时间为基准,其他的取消)  def Move_Time(move_time):      # ? 以中国上映时间为基准,去掉()与里面中文的内容      time = re.sub("[一-龥]","",move_time[0])      # ? 测试时,发现有些数据不是很全面,用下列方法,多次删除无用数据      time = time.strip("(").strip(")").strip(r"/").strip("(")          return time时长处理,取消 分钟和()   def Move_Len(move_len):      # ! 注意 时长类型 byte 需要修改为 str      len = re.sub("[一-龥]","",str(move_len))        len = len.strip("()")       return len     数据分析 上映时间分布
  df2 = df["上映时间"].value_counts()  评分情况分布  plt.figure(figsize=(20,8),dpi=80)  plt.hist(df["评分"].values,bins=20)  max_ = df["评分"].max()  min_ = df["评分"].min()  t1 = np.linspace(min_,max_,21)  plt.xticks(t1)  plt.show()电影类型分布(重点)  # ! 电影类型分布  move_type = df["电影类型"].str.split(",")  move_type = move_type.apply(pd.Series)  move_type = move_type.apply(pd.value_counts)  move_type.unstack()  move_type = move_type.unstack().dropna().reset_index()  move_type.columns =["level_0","type","counts"]  movie_type_m = move_type.drop(["level_0"],axis=1).groupby("type").sum().sort_values(by=["counts"],ascending=False).reset_index()    # print(movie_type_m["counts"].to_list())  size= movie_type_m["counts"].to_list()  name = movie_type_m["type"].to_list()  colors = ["steelblue","#9999ff","red","indianred", "green","yellow","orange"]  plot = squarify.plot(  sizes=size, # 指定绘图数据  color = colors,# 指定 定义颜   label=name,# 指定标签  value=size,# 添加数值标签  alpha = 0.6,# 指定透明度  edgecolor = "white",# 设置边界框为   linewidth =3 # 设置边框宽度为3  )  plt.rc("font", size=12)  # 设置标题   plot.set_title("电影类型分布情况",fontdict = {"fontsize":20})  # 去除坐标轴  plt.axis("off")  # 去除上边框和右边框刻度  plt.tick_params(top = "off", right = "off")  plt.rcParams["font.sans-serif"]=["SimHei"]    plt.rcParams["axes.unicode_minus"] = False  # 显 图形  plt.show()重点提示显示中文时,出现了中文乱码的情况,这里给出处理方法  plt.rcParams["font.sans-serif"]=["SimHei"]    plt.rcParams["axes.unicode_minus"] = False获取br里的内容是全部的,需要根据实际情况分析,获取指定内容  move_br = res.xpath("/html/body/p[3]/p[1]/p[2]/p[1]/p[1]/p[1]/p[1]/p[2]/descendant-or-self::text()").getall()          for i in range(len(move_br)):              if move_br[i] == "制片国家/地区:":                  country = move_br[i+1]                  # ? 去除里面所有的空格                  move_country = country.replace(" ","")              elif move_br[i] == "语言:":                  language = move_br[i+1]                  move_language = language.replace(" ","")                  # ! 后面就不需要了                  break在数据获取时,发现了一些数据缺失的情况,这里没有进行处理,后续需要修正 在进行电影类型分类分析时,存在 科幻感 [科幻]  同时存在的情况,这里没有处理,后续需要更正 未对每个类型的评分情况,进行分析,后续需要添加,在此记录一下。

手机只是智能玩具吗?随随着科技的不段发展,智能手机已经走近我们每一个普通家庭,人人都有一部智能手机,刷刷视频,看看影视,听听歌曲,手机也算是无所不能,过去家庭影院,CD,VCD,DVD,后期的个人产品竟然不灭!冬奥会火炬水下传递,机器人咋做的,用了什么黑科技?2022年北京冬奥会又迎来了新消息,冬奥会上的黑科技可以说令不少人感到惊讶!当然,一次冬奥会也能够体现出中国的科技实力多强。的确,我们也迎来了一个好消息,一则关于机器人水下传递冬奥高通(QCOM。US)2022年Q1财报实现营收106。97亿美元高通(QCOM。US)2022年Q1财报实现营收106。97亿美元,前值为82。26亿美元,预期值为104。2亿美元,超出市场预期2。66每股收益为3。23美元,前值为2。17美元FF完成做空指控调查!董事长卸任,贾跃亭降薪相信大家还记得去年10月FF汽车公司遭遇了美国做空机构的阻击该机构称FF永远也卖不出一辆车。面对骗局的指控,FF汽车公司反应迅速,立即启动了内部调查,并向投资者承诺在2022年第一谷歌带动美股全线收高,Meta财报暗淡,盘后重挫超20谷歌股价大涨,推动美股全线上扬,连续四天收涨Meta财报不振,盘后重挫超20就业数据意外爆冷,一月美国就业人数减少30万周三美股收盘全线上扬,已连续第四个交易日收涨。截至收盘,道指工信部回应美撤销中国联通214牌照中新财经2月3日电据工信部网站3日消息,工业和信息化部针对美撤销中国联通214牌照事项发表声明,声明表示,美方应撤回对我企业不公正的决定,停止将国家安全概念泛化将经济问题政治化的错用kotlin写一个token的生成和校验能用代码说的话,我不喜欢用文字来过多的描述。所以我就直接上代码了。用于token的生成和校验objectHyAuth过期constvalstatusTimeOut0错误的token特斯拉自动驾驶系统存缺陷在美召回逾5万辆汽车来源中国经济网特斯拉自动驾驶系统存在缺陷撤除滚动停车功能,在美召回逾5万辆汽车!每经编辑程鹏因美国监管方认为存在安全隐患,特斯拉被迫撤除了自动驾驶软件中有关停车的一种功能,并因此召10002000元左右的手机有推荐的吗,要求1信号好2电池耐用,3质量好4字体大?感谢您的阅读!10002000元左右的手机有哪些推荐的吗?看看对于这款手机的要求1。信号强。2。电池耐用。3。质量好。4。字体大。在我们对于手机有这些要求的时候,我们首先看一下,到怎样使用85mm定焦镜头?怎样使用85mm定焦镜头?如果你问摄影人,哪个镜头适合拍摄人像?估计大多数人会给你推荐85定焦镜头。的确,85镜头就是为人像而生的定焦镜头。这个镜头光圈有各类的,佳能的这一款光圈达移动公司是如何知道我用的是5G手机的?人家要是不知道你用什么手机,还开什么移动公司。跟你说,就是你手机里有啥东西人家都知道。耶不管是手机刚开机还是一直开着机,只要插入了有效的SIM卡,手机都会和基站以一定的频率进行通讯
Excel求和只会sum函数就out了,这五个求和公式一个比一个强说到数据求和,可能90的朋友第一时间想到的求和函数就是sum函数。因为这个函数可以快速的对数据进行单一维度或多维度数据求和。今天我们来学习一下,数据求和过程中,5个高效的求和公式。电子行业手机10倍光学变焦问世重视光学创新产业链天风证券10倍光学变焦,潜望式摄像头技术令人瞩目在2019年2月23日举办的MWC2019大会上,OPPO对外展示了旗下最新的10倍混合光学变焦技术。华为将有可能在3月26日在法国顺丰迎来对手拥有11架飞机,速度比顺丰快,目前估值200亿顺丰迎来对手拥有11架飞机,速度比顺丰快,目前估值200亿近些年来,随着电商行业的发展,物流行业也随之崛起。目前,国内的快递行业基本上形成了以中国邮政顺丰京东物流四通一达为主的几大DxOMark这是有多不待见索尼DxO仅79分被错拼成Somy目前,几乎所有一线主流旗舰机的相机CMOS均由索尼提供,去年华为P20Pro登顶DxOMark,除了华为的软件算法团队优化之外,主要靠得还是向索尼定制的4000万像素11。7英寸大软件推荐丨xoffice将Office文档转换为PDF一个JavaEE服务,将Office文档转换为PDF,格式兼容性好。安装部署安装微软Office2010或以上版本安装JDK1。6或以上版本将releasejacob下的适合的dl某动首部5G宣传片世界因5G而美好!5G连接未来5G宣传片来了信息直观感知,远端专家实时交互云网融合,云端互动,多屏合一超高清,低时延,全球互联视讯会议5GARVR全景直播校园云端智慧大脑,实时监控专利数量最多的大学排名,竟然曾经是个二本大学,远超清华北大知识产权也是衡量一所大学对社会产生贡献的一种方式,学校的学生能够主动创新为社会提供有价值的内容和改变也是学校培养人才能力的体现。就在2019年3月19日,世界知识产权组织发布了20RedMonk语言排行Kotlin上升8位,TS快进前10知名软件行业分析公司RedMonk发布了2019年一季度编程语言排行榜。RedMonk编程语言排行榜通过追踪编程语言在GitHub和StackOverflow上的代码使用情况与讨论运营商净赚1492亿,提速降费让利1800亿!用户羊毛从我身上薅?截至3月21日,三大运营商2018年财报悉数出炉。在提速降费宽带业务竞争加剧的背景下,三大运营商净利润均同比增长,合计实现净利润1492亿元,新兴业务收入增长强劲。2019年,三大福建的这个电池大王,要建世界最大电池工厂!企业发展就像马拉松赛跑,你不能歇着,要一直有目标。曾毓群2011年,曾毓群将汽车动力电池业务从原有的新能源科技有限公司独立出来,成立宁德时代(CATL)。2017年,成立六年的宁德日本超精密微细加工一家只有7人的街道小厂,如何对超硬合金进行微孔加工?小姐姐有话说转载请私信郭小姐姐获得授权)授权后,转载请务必注明出处今日头条号日本制造业内参日经TECH)违者必究。实现超强的直刻切削加工FOWARD成立于1988年,是总部位于日本