• 实验三 利用flask框架和Echarts实现电影榜单可视化


     先看成品图

     

    代码有点多放在我的github上

    https://github.com/longsongline/douban-bigdata-showicon-default.png?t=M4ADhttps://github.com/longsongline/douban-bigdata-show

    使用具体流程

    1.先运行dashuju3.py

    这个是用于爬取的豆瓣top250的代码,会生成一个csv文件

    1. 1.import requests
    2. 2.import bs4
    3. 3.import csv
    4. 4.
    5. 5.from lxml import etree
    6. 6.import requests
    7. 7.import  time
    8. 8.import os
    9. 9.
    10. 10.import datetime
    11. 11.import time
    12. 12.#创建或者写入csv
    13. 13.csv_file=open('dashuju250.csv''w', newline='',encoding='utf-8')
    14. 14.writer = csv.writer(csv_file)
    15. 15.#列名添加
    16. 16.writer.writerow(['No''name''score''recommendation''yanyuan','daoyan','year','country','classes'])
    17. 17.#请求头越猛越好,反正这个豆瓣就是让你爬的,不用那么多也行
    18. 18.headers = {
    19. 19.        'User-Agent''Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36',
    20. 20.        'Cookie''lang=zh-cn; theme=default; ajax_lastNext=on; selfClose=1; bugModule=0; bugBranch=0; treeBranch=0; moduleBrowseParam=0; openApp=qa; windowWidth=659; windowHeight=706',
    21. 21.    }
    22. 22.#因为有十个页面,所以目前采用分别爬取
    23. 23.for x in range(10):
    24. 24.    #每一个的连接
    25. 25.    url = 'https://movie.douban.com/top250?start=' + str(x*25) + '&filter='
    26. 26.    res = requests.get(url, headers=headers)
    27. 27.    #靓汤出马
    28. 28.    bs = bs4.BeautifulSoup(res.text, 'html.parser')
    29. 29.    bs = bs.find('ol', class_="grid_view")
    30. 30.    #就打开f12找需要的东西的<li>在哪
    31. 31.    for titles in bs.find_all('li'):
    32. 32.        print(titles)
    33. 33.        num = titles.find('em',class_="").text
    34. 34.        title = titles.find('span', class_="title").text
    35. 35.        comment = titles.find('span',class_="rating_num").text
    36. 36.        others=titles.find('div',class_='bd').find('p').text.strip('').split('\n')
    37. 37.
    38. 38.        if '\xa0\xa0\xa0' in others[1]:
    39. 39.            actors_director=others[1].strip('').split('\xa0\xa0\xa0')
    40. 40.            director=actors_director[0].strip(' ')
    41. 41.            actors=actors_director[1]
    42. 42.        else:
    43. 43.            actors_director=others[1].strip('').split('\xa0\xa0\xa0')
    44. 44.            director=actors_director[0].strip(' ')
    45. 45.            actors=''
    46. 46.
    47. 47.        year_country_type=others[2].strip('').split('\xa0/\xa0')
    48. 48.        year=year_country_type[0].strip(' ')
    49. 49.        country=year_country_type[1]
    50. 50.        movie_type=year_country_type[2]
    51. 51.        #对于可能存在的空数据,可以用if/else语句分情况讨论,这样就不会无法运行或者碰到数据不完整的情况了
    52. 52.        if titles.find('span',class_="inq") != None:
    53. 53.            tes = titles.find('span',class_="inq").text
    54. 54.            writer.writerow([num , title , comment , tes , actors,director, year, country, movie_type])
    55. 55.        else:
    56. 56.            writer.writerow([num , title , comment , '', actors,director, year, country, movie_type])   
    57. 57.#关上罪恶的文件
    58. 58.csv_file.close()

     

     这个文件想直接获取的话就下载就行了

    这样就可以省去这一步

    https://download.csdn.net/download/long_songs/85406980https://download.csdn.net/download/long_songs/85406980

    2.运行ciyun.py

    制作词云

    这一步,如果也不想做,直接把图片偷走就好了

     然后再换底运行

    3.huandi.py

    换成蓝色的底部,因为我的可视化的色调是蓝色的

     4.布置准备好,替换好路径后,运行app.py 的flask,打开网址即可显示出你的高档可视化成果啦!

    有什么问题可以留言或者私信我

  • 相关阅读:
    【车联网/自动驾驶仿真学习】VEINS_CARLA安装指南
    在iPhone上恢复已删除的Safari历史记录的最佳方法
    【hadoop】hadoop 热点问题(问题导引学习)|为什么要用hadoop?
    随机森林实战(分类任务+特征重要性+回归任务)(含Python代码详解)
    死锁和多线程常见问题
    4、python中函数、匿名函数、递归函数
    pikachu之暴力破解
    (2023,ControlNet,CFGRW,diffusion,控制组合)向文本到图像扩散模型添加条件控制
    基于Pytorch框架的深度学习MobileViT神经网络鸟类识别分类系统源码
    嵌入式Linux驱动开发(LCD屏幕专题)(一)
  • 原文地址:https://blog.csdn.net/long_songs/article/details/124883048