├── README.md ├── python电影爬虫 ├── .idea │ ├── encodings.xml │ ├── inspectionProfiles │ │ └── Project_Default.xml │ ├── misc.xml │ ├── modules.xml │ ├── python电影爬虫.iml │ └── workspace.xml ├── getm.py ├── movie.csv └── requirements.txt ├── spark_movie.sql ├── spark_movie ├── .idea │ ├── .gitignore │ ├── codeStyles │ │ └── codeStyleConfig.xml │ ├── libraries │ │ ├── jars1.xml │ │ └── lib.xml │ ├── misc.xml │ ├── modules.xml │ └── uiDesigner.xml ├── lib │ ├── commons-lang3-3.3.1.jar │ ├── jieba-analysis-1.0.2.jar │ └── mysql-connector-java-5.1.35.jar ├── movie.csv ├── out │ ├── ._SUCCESS.crc │ ├── .part-r-00000.crc │ ├── _SUCCESS │ ├── part-r-00000 │ └── production │ │ └── spark_movie │ │ └── com │ │ ├── CommontNum.class │ │ ├── LvNum.class │ │ ├── TypeNum.class │ │ ├── WordNum.class │ │ ├── WordUtil.class │ │ └── YearNum.class ├── output │ ├── ._SUCCESS.crc │ ├── .part-r-00000.crc │ ├── _SUCCESS │ └── part-r-00000 ├── spark_movie.iml └── src │ └── com │ └── CommontNum.java ├── spark_movie_web ├── .idea │ ├── .gitignore │ ├── codeStyles │ │ └── codeStyleConfig.xml │ ├── compiler.xml │ ├── encodings.xml │ ├── jarRepositories.xml │ ├── libraries │ │ ├── Maven__ch_qos_logback_logback_classic_1_2_3.xml │ │ ├── Maven__ch_qos_logback_logback_core_1_2_3.xml │ │ ├── Maven__cn_hutool_hutool_all_5_5_4.xml │ │ ├── Maven__com_alibaba_druid_1_2_2.xml │ │ ├── Maven__com_baomidou_mybatis_plus_3_2_0.xml │ │ ├── Maven__com_baomidou_mybatis_plus_annotation_3_2_0.xml │ │ ├── Maven__com_baomidou_mybatis_plus_boot_starter_3_2_0.xml │ │ ├── Maven__com_baomidou_mybatis_plus_core_3_2_0.xml │ │ ├── Maven__com_baomidou_mybatis_plus_extension_3_2_0.xml │ │ ├── Maven__com_baomidou_mybatis_plus_generator_3_2_0.xml │ │ ├── Maven__com_fasterxml_classmate_1_4_0.xml │ │ ├── Maven__com_fasterxml_jackson_core_jackson_annotations_2_9_0.xml │ │ ├── Maven__com_fasterxml_jackson_core_jackson_core_2_9_7.xml │ │ ├── Maven__com_fasterxml_jackson_core_jackson_databind_2_9_7.xml │ │ ├── Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_9_7.xml │ │ ├── Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_9_7.xml │ │ ├── Maven__com_fasterxml_jackson_jaxrs_jackson_jaxrs_base_2_9_7.xml │ │ ├── Maven__com_fasterxml_jackson_jaxrs_jackson_jaxrs_json_provider_2_9_7.xml │ │ ├── Maven__com_fasterxml_jackson_module_jackson_module_jaxb_annotations_2_9_7.xml │ │ ├── Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_9_7.xml │ │ ├── Maven__com_fasterxml_woodstox_woodstox_core_5_0_3.xml │ │ ├── Maven__com_github_jsqlparser_jsqlparser_2_1.xml │ │ ├── Maven__com_github_stephenc_jcip_jcip_annotations_1_0_1.xml │ │ ├── Maven__com_google_code_findbugs_jsr305_3_0_2.xml │ │ ├── Maven__com_google_code_gson_gson_2_8_5.xml │ │ ├── Maven__com_google_errorprone_error_prone_annotations_2_2_0.xml │ │ ├── Maven__com_google_guava_failureaccess_1_0.xml │ │ ├── Maven__com_google_guava_guava_27_0_jre.xml │ │ ├── Maven__com_google_guava_listenablefuture_9999_0_empty_to_avoid_conflict_with_guava.xml │ │ ├── Maven__com_google_j2objc_j2objc_annotations_1_1.xml │ │ ├── Maven__com_google_protobuf_protobuf_java_2_5_0.xml │ │ ├── Maven__com_google_re2j_re2j_1_1.xml │ │ ├── Maven__com_nimbusds_nimbus_jose_jwt_7_9.xml │ │ ├── Maven__com_squareup_okhttp_okhttp_2_7_5.xml │ │ ├── Maven__com_squareup_okio_okio_1_6_0.xml │ │ ├── Maven__com_sun_jersey_jersey_client_1_19.xml │ │ ├── Maven__com_sun_jersey_jersey_core_1_19.xml │ │ ├── Maven__com_sun_jersey_jersey_servlet_1_19.xml │ │ ├── Maven__com_thoughtworks_paranamer_paranamer_2_3.xml │ │ ├── Maven__com_zaxxer_HikariCP_3_2_0.xml │ │ ├── Maven__commons_beanutils_commons_beanutils_1_9_4.xml │ │ ├── Maven__commons_cli_commons_cli_1_2.xml │ │ ├── Maven__commons_codec_commons_codec_1_11.xml │ │ ├── Maven__commons_collections_commons_collections_3_2_2.xml │ │ ├── Maven__commons_io_commons_io_2_5.xml │ │ ├── Maven__commons_logging_commons_logging_1_1_3.xml │ │ ├── Maven__commons_net_commons_net_3_6.xml │ │ ├── Maven__dnsjava_dnsjava_2_1_7.xml │ │ ├── Maven__javax_activation_javax_activation_api_1_2_0.xml │ │ ├── Maven__javax_annotation_javax_annotation_api_1_3_2.xml │ │ ├── Maven__javax_servlet_javax_servlet_api_4_0_1.xml │ │ ├── Maven__javax_servlet_jsp_jsp_api_2_1.xml │ │ ├── Maven__javax_validation_validation_api_2_0_1_Final.xml │ │ ├── Maven__javax_ws_rs_jsr311_api_1_1_1.xml │ │ ├── Maven__javax_xml_bind_jaxb_api_2_3_1.xml │ │ ├── Maven__log4j_log4j_1_2_17.xml │ │ ├── Maven__mysql_mysql_connector_java_5_1_35.xml │ │ ├── Maven__net_minidev_accessors_smart_1_2.xml │ │ ├── Maven__net_minidev_json_smart_2_3.xml │ │ ├── Maven__org_apache_avro_avro_1_7_7.xml │ │ ├── Maven__org_apache_commons_commons_compress_1_19.xml │ │ ├── Maven__org_apache_commons_commons_configuration2_2_1_1.xml │ │ ├── Maven__org_apache_commons_commons_lang3_3_8_1.xml │ │ ├── Maven__org_apache_commons_commons_math3_3_1_1.xml │ │ ├── Maven__org_apache_commons_commons_text_1_4.xml │ │ ├── Maven__org_apache_curator_curator_client_2_13_0.xml │ │ ├── Maven__org_apache_curator_curator_framework_2_13_0.xml │ │ ├── Maven__org_apache_curator_curator_recipes_2_13_0.xml │ │ ├── Maven__org_apache_hadoop_hadoop_annotations_3_2_2.xml │ │ ├── Maven__org_apache_hadoop_hadoop_auth_3_2_2.xml │ │ ├── Maven__org_apache_hadoop_hadoop_client_3_2_2.xml │ │ ├── Maven__org_apache_hadoop_hadoop_common_3_2_2.xml │ │ ├── Maven__org_apache_hadoop_hadoop_hdfs_client_3_2_2.xml │ │ ├── Maven__org_apache_hadoop_hadoop_mapreduce_client_common_3_2_2.xml │ │ ├── Maven__org_apache_hadoop_hadoop_mapreduce_client_core_3_2_2.xml │ │ ├── Maven__org_apache_hadoop_hadoop_mapreduce_client_jobclient_3_2_2.xml │ │ ├── Maven__org_apache_hadoop_hadoop_yarn_api_3_2_2.xml │ │ ├── Maven__org_apache_hadoop_hadoop_yarn_client_3_2_2.xml │ │ ├── Maven__org_apache_hadoop_hadoop_yarn_common_3_2_2.xml │ │ ├── Maven__org_apache_htrace_htrace_core4_4_1_0_incubating.xml │ │ ├── Maven__org_apache_httpcomponents_httpclient_4_5_6.xml │ │ ├── Maven__org_apache_httpcomponents_httpcore_4_4_10.xml │ │ ├── Maven__org_apache_kerby_kerb_admin_1_0_1.xml │ │ ├── Maven__org_apache_kerby_kerb_client_1_0_1.xml │ │ ├── Maven__org_apache_kerby_kerb_common_1_0_1.xml │ │ ├── Maven__org_apache_kerby_kerb_core_1_0_1.xml │ │ ├── Maven__org_apache_kerby_kerb_crypto_1_0_1.xml │ │ ├── Maven__org_apache_kerby_kerb_identity_1_0_1.xml │ │ ├── Maven__org_apache_kerby_kerb_server_1_0_1.xml │ │ ├── Maven__org_apache_kerby_kerb_simplekdc_1_0_1.xml │ │ ├── Maven__org_apache_kerby_kerb_util_1_0_1.xml │ │ ├── Maven__org_apache_kerby_kerby_asn1_1_0_1.xml │ │ ├── Maven__org_apache_kerby_kerby_config_1_0_1.xml │ │ ├── Maven__org_apache_kerby_kerby_pkix_1_0_1.xml │ │ ├── Maven__org_apache_kerby_kerby_util_1_0_1.xml │ │ ├── Maven__org_apache_kerby_kerby_xdr_1_0_1.xml │ │ ├── Maven__org_apache_kerby_token_provider_1_0_1.xml │ │ ├── Maven__org_apache_logging_log4j_log4j_api_2_11_1.xml │ │ ├── Maven__org_apache_logging_log4j_log4j_to_slf4j_2_11_1.xml │ │ ├── Maven__org_apache_tomcat_embed_tomcat_embed_core_8_5_45.xml │ │ ├── Maven__org_apache_tomcat_embed_tomcat_embed_el_8_5_45.xml │ │ ├── Maven__org_apache_tomcat_embed_tomcat_embed_websocket_8_5_45.xml │ │ ├── Maven__org_attoparser_attoparser_2_0_5_RELEASE.xml │ │ ├── Maven__org_checkerframework_checker_qual_2_5_2.xml │ │ ├── Maven__org_codehaus_jackson_jackson_core_asl_1_9_13.xml │ │ ├── Maven__org_codehaus_jackson_jackson_mapper_asl_1_9_13.xml │ │ ├── Maven__org_codehaus_mojo_animal_sniffer_annotations_1_17.xml │ │ ├── Maven__org_codehaus_woodstox_stax2_api_3_1_4.xml │ │ ├── Maven__org_eclipse_jetty_jetty_security_9_4_12_v20180830.xml │ │ ├── Maven__org_eclipse_jetty_jetty_servlet_9_4_12_v20180830.xml │ │ ├── Maven__org_eclipse_jetty_jetty_util_9_4_12_v20180830.xml │ │ ├── Maven__org_eclipse_jetty_jetty_webapp_9_4_12_v20180830.xml │ │ ├── Maven__org_eclipse_jetty_jetty_xml_9_4_12_v20180830.xml │ │ ├── Maven__org_hibernate_validator_hibernate_validator_6_0_13_Final.xml │ │ ├── Maven__org_jboss_logging_jboss_logging_3_3_2_Final.xml │ │ ├── Maven__org_mybatis_mybatis_3_5_2.xml │ │ ├── Maven__org_mybatis_mybatis_spring_2_0_2.xml │ │ ├── Maven__org_ow2_asm_asm_5_0_4.xml │ │ ├── Maven__org_projectlombok_lombok_1_18_2.xml │ │ ├── Maven__org_slf4j_jul_to_slf4j_1_7_25.xml │ │ ├── Maven__org_slf4j_slf4j_api_1_7_25.xml │ │ ├── Maven__org_springframework_boot_spring_boot_2_1_0_RELEASE.xml │ │ ├── Maven__org_springframework_boot_spring_boot_autoconfigure_2_1_0_RELEASE.xml │ │ ├── Maven__org_springframework_boot_spring_boot_starter_2_1_0_RELEASE.xml │ │ ├── Maven__org_springframework_boot_spring_boot_starter_jdbc_2_1_0_RELEASE.xml │ │ ├── Maven__org_springframework_boot_spring_boot_starter_json_2_1_0_RELEASE.xml │ │ ├── Maven__org_springframework_boot_spring_boot_starter_logging_2_1_0_RELEASE.xml │ │ ├── Maven__org_springframework_boot_spring_boot_starter_thymeleaf_2_1_0_RELEASE.xml │ │ ├── Maven__org_springframework_boot_spring_boot_starter_tomcat_2_1_0_RELEASE.xml │ │ ├── Maven__org_springframework_boot_spring_boot_starter_web_2_1_0_RELEASE.xml │ │ ├── Maven__org_springframework_spring_aop_5_1_2_RELEASE.xml │ │ ├── Maven__org_springframework_spring_beans_5_1_2_RELEASE.xml │ │ ├── Maven__org_springframework_spring_context_5_1_2_RELEASE.xml │ │ ├── Maven__org_springframework_spring_core_5_1_2_RELEASE.xml │ │ ├── Maven__org_springframework_spring_expression_5_1_2_RELEASE.xml │ │ ├── Maven__org_springframework_spring_jcl_5_1_2_RELEASE.xml │ │ ├── Maven__org_springframework_spring_jdbc_5_1_2_RELEASE.xml │ │ ├── Maven__org_springframework_spring_tx_5_1_2_RELEASE.xml │ │ ├── Maven__org_springframework_spring_web_5_1_2_RELEASE.xml │ │ ├── Maven__org_springframework_spring_webmvc_5_1_2_RELEASE.xml │ │ ├── Maven__org_thymeleaf_extras_thymeleaf_extras_java8time_3_0_1_RELEASE.xml │ │ ├── Maven__org_thymeleaf_thymeleaf_3_0_11_RELEASE.xml │ │ ├── Maven__org_thymeleaf_thymeleaf_spring5_3_0_11_RELEASE.xml │ │ ├── Maven__org_unbescape_unbescape_1_1_6_RELEASE.xml │ │ ├── Maven__org_xerial_snappy_snappy_java_1_0_5.xml │ │ └── Maven__org_yaml_snakeyaml_1_23.xml │ ├── misc.xml │ ├── modules.xml │ └── uiDesigner.xml ├── pom.xml ├── spark_movie_web.iml └── src │ └── main │ ├── java │ └── com │ │ └── movie │ │ ├── MovieApp.java │ │ ├── config │ │ ├── Conf.java │ │ ├── LoginFilter.java │ │ └── RouteConfig.java │ │ ├── controller │ │ ├── IndexController.java │ │ ├── MovieController.java │ │ └── UserController.java │ │ ├── entity │ │ ├── CommentNum.java │ │ ├── LvNum.java │ │ ├── Type.java │ │ ├── UserInfo.java │ │ ├── Words.java │ │ └── YearNum.java │ │ ├── etl │ │ └── MapReduceETL.java │ │ ├── mapper │ │ ├── CommentNumMapper.java │ │ ├── LvNumMapper.java │ │ ├── TypeMapper.java │ │ ├── UserMapper.java │ │ ├── WordsMapper.java │ │ └── YearNumMapper.java │ │ └── utils │ │ └── AccountValidatorUtil.java │ └── resources │ ├── application.yaml │ ├── static │ ├── css │ │ ├── home.css │ │ ├── login.css │ │ └── reg.css │ ├── home.html │ ├── images │ │ └── bgm.jpg │ ├── js │ │ ├── echarts.min.js │ │ └── jquery.js │ └── layui │ │ ├── css │ │ ├── layui.css │ │ └── modules │ │ │ ├── code.css │ │ │ ├── laydate │ │ │ └── default │ │ │ │ └── laydate.css │ │ │ └── layer │ │ │ └── default │ │ │ ├── icon-ext.png │ │ │ ├── icon.png │ │ │ ├── layer.css │ │ │ ├── loading-0.gif │ │ │ ├── loading-1.gif │ │ │ └── loading-2.gif │ │ ├── font │ │ ├── iconfont.eot │ │ ├── iconfont.svg │ │ ├── iconfont.ttf │ │ ├── iconfont.woff │ │ └── iconfont.woff2 │ │ └── layui.js │ └── templates │ ├── index.html │ ├── login.html │ └── register.html └── 关于系统.txt /README.md: -------------------------------------------------------------------------------- 1 | # Python_Spark_Analysis_DoubanMovie_Crawler 2 | 基于豆瓣电影爬虫及Spark数据分析可视化设计 3 | 4 | 开发环境:PyCharm + Python3.7 + Spark + Idea + Mysql + Echart 5 | 可视化网站入口:http://localhost:8080/login.html 6 | 账号密码: admin/1 7 | 8 | 由于我国经济的不断增长,人们的物质生活也在不断提升,因此越来越多的人观影需求增加以丰富精神生活,为分析当下用户的观影偏好以及方便人们从众多的影片中作出合适的选择,本文基于Spark分析平台及python爬虫技术等设计了一个豆瓣电影数据分析可视化系统,以完成对豆瓣电影网页的数据进行爬取,进而以折线图图、直方图等多种数据可视化的形式直观的展示给用户,从而分析用户观影偏好以及为用户选择影片时提供一定的参考。 9 | 该豆瓣电影数据分析分析可视化系统主要可以实现至少对一万条电影数据的爬取和分析,可以从中分析出热门电影类型数据占比、历年电影上线走势、电影高频词统计分析、电影评分等级分析、影评时间统计分析、上线电影数量较高年份五大模块。 10 | -------------------------------------------------------------------------------- /python电影爬虫/.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /python电影爬虫/.idea/inspectionProfiles/Project_Default.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 56 | -------------------------------------------------------------------------------- /python电影爬虫/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | -------------------------------------------------------------------------------- /python电影爬虫/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /python电影爬虫/.idea/python电影爬虫.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 13 | -------------------------------------------------------------------------------- /python电影爬虫/getm.py: -------------------------------------------------------------------------------- 1 | import time 2 | import uuid 3 | import requests 4 | import os 5 | from selenium import webdriver 6 | from selenium.webdriver.common.by import By 7 | from selenium.webdriver.chrome.options import Options 8 | from selenium.webdriver.support import expected_conditions as ec 9 | from selenium.webdriver.support.wait import WebDriverWait 10 | from selenium.webdriver.common.desired_capabilities import DesiredCapabilities 11 | 12 | import csv 13 | 14 | #杀死进程命令: taskkill /im chromedriver.exe /f 15 | 16 | def get_menu(page): 17 | for k in range(page): 18 | time.sleep(5) 19 | wait.until(ec.presence_of_element_located((By.LINK_TEXT, "后页>"))) 20 | tables = browser.find_elements(By.XPATH, '//div[@class="title"]/a[@class="title-text"]') 21 | for table in tables: 22 | link = table.get_attribute("href") 23 | title = table.text 24 | movies.append({title: link}) 25 | browser.find_element(By.LINK_TEXT, "后页>").click() 26 | 27 | 28 | 29 | def downloadimg(url, filename): 30 | pa = '' 31 | try: 32 | ttt = requests.get(url=url) 33 | pa = 'img/%s.jpg' % filename 34 | if os.path.exists('./%s' % pa): 35 | pa 36 | with open('./%s' % pa, 'wb') as file: 37 | file.write(ttt.content) 38 | print("%s.jpg已下载完成" % filename) 39 | except Exception as e: 40 | print('%s.jpg下载失败' % filename) 41 | return "/" + pa 42 | 43 | def get_products(link): 44 | # 后退到百度页面 45 | browser2.back() 46 | browser2.get(link) 47 | 48 | time.sleep(5) 49 | 50 | # 等待页面加载 51 | wait2.until(ec.presence_of_element_located((By.CSS_SELECTOR, '#mainpic'))) 52 | name = browser2.find_element(By.XPATH, '//div[@id="content"]/h1/span[1]').text.strip().replace("\r\n","").replace("\r","").replace("\n","").replace(",",",") 53 | # img = browser2.find_element(By.XPATH, '//*[@id="mainpic"]/a/img').get_attribute("src") 54 | # img = downloadimg(img,str(uuid.uuid1()).replace("-","")) 55 | # daoyan = browser2.find_element(By.XPATH, '//*[@id="info"]/span[1]/span[2]').text.strip().replace("\r\n","").replace("\r","").replace("\n","") 56 | types = browser2.find_elements(By.XPATH, '//div[@id="info"]/span[@property="v:genre"]') 57 | tt = [] 58 | for tp in types: 59 | tt.append(tp.text.strip().replace("\r\n", "").replace("\r", "").replace("\n", "").replace(",",",")) 60 | # online = browser2.find_element(By.XPATH, '//*[@id="info"]/span[@property="v:runtime"]').text.strip().replace("\r\n","").replace("\r","").replace("\n","") 61 | try: 62 | year = browser2.find_element(By.XPATH, '//div[@id="info"]/span[@property="v:initialReleaseDate"]').text.strip().replace("\r\n","").replace("\r","").replace("\n","").replace(",",",") 63 | except Exception as ex: 64 | print('还未上映,无法获取上映时间跳过!') 65 | return 66 | score = browser2.find_element(By.XPATH, '//div[@id="interest_sectl"]/div[1]/div[2]/strong').text.strip().replace("\r\n","").replace("\r","").replace("\n","").replace(",",",") 67 | # small = browser2.find_element(By.XPATH, '//*[@id="link-report"]/span').text.strip().replace("\r\n","").replace("\r","").replace("\n","") 68 | #tables = browser2.find_elements(By.XPATH,'//*[@id="comments-section"]/div[2]/div[2]/div[1]/div') 69 | tables = browser2.find_elements(By.XPATH, '//div[@id="comments-section"]//div[@id="hot-comments"]/div') 70 | for com1 in tables: 71 | try: 72 | tm = com1.find_element(By.XPATH, './div/h3/span[2]/span[@class="comment-time "]').text.replace(",",",") 73 | content = com1.find_element(By.XPATH,'./div/p/span').text.replace(",",",") 74 | writer.writerow([name, "/".join(tt), year, score, tm, content]) 75 | print(name, "/".join(tt), year, score, tm, content) 76 | except Exception as e: 77 | print(e) 78 | continue 79 | 80 | 81 | 82 | 83 | 84 | if __name__ == "__main__": 85 | 86 | # 初始化浏览器对象 87 | chrome_options = Options() 88 | # 设置无窗口模式 89 | # chrome_options.add_argument('--headless') 90 | # 解决反爬识别selenium 避免浏览器监测 91 | chrome_options.add_experimental_option('excludeSwitches', ['enable-automation']) 92 | # 设置user-agent,来模拟客户端,如iPhone Safari浏览器 93 | chrome_options.add_argument( 94 | 'user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1"') 95 | # 设置默认编码为 utf-8,也就是中文 96 | chrome_options.add_argument('lang=zh_CN.UTF-8') 97 | # 禁止图片加载 98 | prefs = {"profile.managed_default_content_settings.images": 2} 99 | chrome_options.add_experimental_option("prefs", prefs) 100 | # 设置页面加载策略,none表示非阻塞模式。 101 | desired_capabilities = DesiredCapabilities.CHROME 102 | desired_capabilities["pageLoadStrategy"] = "none" 103 | 104 | # 避免浏览器监测 105 | opt = Options() 106 | opt.add_experimental_option("excludeSwitches", ['enable-automation']) 107 | # 停止页面的不必要加载 108 | #opt.page_load_strategy = 'eager' 109 | 110 | # 无头浏览器,在后台运行 111 | # opt.add_argument("--headless") 112 | browser = webdriver.Chrome(options=chrome_options, executable_path='C:/chromedriver.exe', desired_capabilities=desired_capabilities) 113 | #browser = webdriver.Chrome(options=opt, executable_path='C:/chromedriver.exe') 114 | # 显示等待,等待browser页面5秒 115 | wait = WebDriverWait(browser, 5) 116 | # 爬取链接 117 | movies = [] 118 | 119 | -------------------------------------------------------------------------------- /python电影爬虫/requirements.txt: -------------------------------------------------------------------------------- 1 | async-generator==1.10 2 | attrs==22.1.0 3 | certifi==2022.6.15 4 | cffi==1.15.1 5 | charset-normalizer==2.1.1 6 | h11==0.13.0 7 | idna==3.3 8 | outcome==1.2.0 9 | pycparser==2.21 10 | PySocks==1.7.1 11 | requests==2.28.1 12 | selenium==3.141.0 13 | sniffio==1.2.0 14 | sortedcontainers==2.4.0 15 | trio==0.21.0 16 | trio-websocket==0.9.2 17 | typing-extensions==4.3.0 18 | urllib3==1.26.12 19 | wsproto==1.2.0 20 | -------------------------------------------------------------------------------- /spark_movie/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | # Datasource local storage ignored files 5 | /dataSources/ 6 | /dataSources.local.xml 7 | # Editor-based HTTP Client requests 8 | /httpRequests/ 9 | -------------------------------------------------------------------------------- /spark_movie/.idea/codeStyles/codeStyleConfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | -------------------------------------------------------------------------------- /spark_movie/.idea/libraries/jars1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie/.idea/libraries/lib.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /spark_movie/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /spark_movie/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /spark_movie/.idea/uiDesigner.xml: -------------------------------------------------------------------------------- 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 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | -------------------------------------------------------------------------------- /spark_movie/lib/commons-lang3-3.3.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/Python_Spark_Analysis_DoubanMovie_Crawler/4ab7acef95d1129f0250fd14de80ebb9f5d612ef/spark_movie/lib/commons-lang3-3.3.1.jar -------------------------------------------------------------------------------- /spark_movie/lib/jieba-analysis-1.0.2.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/Python_Spark_Analysis_DoubanMovie_Crawler/4ab7acef95d1129f0250fd14de80ebb9f5d612ef/spark_movie/lib/jieba-analysis-1.0.2.jar -------------------------------------------------------------------------------- /spark_movie/lib/mysql-connector-java-5.1.35.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/Python_Spark_Analysis_DoubanMovie_Crawler/4ab7acef95d1129f0250fd14de80ebb9f5d612ef/spark_movie/lib/mysql-connector-java-5.1.35.jar -------------------------------------------------------------------------------- /spark_movie/out/._SUCCESS.crc: -------------------------------------------------------------------------------- 1 | crc -------------------------------------------------------------------------------- /spark_movie/out/.part-r-00000.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/Python_Spark_Analysis_DoubanMovie_Crawler/4ab7acef95d1129f0250fd14de80ebb9f5d612ef/spark_movie/out/.part-r-00000.crc -------------------------------------------------------------------------------- /spark_movie/out/_SUCCESS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/Python_Spark_Analysis_DoubanMovie_Crawler/4ab7acef95d1129f0250fd14de80ebb9f5d612ef/spark_movie/out/_SUCCESS -------------------------------------------------------------------------------- /spark_movie/out/production/spark_movie/com/CommontNum.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/Python_Spark_Analysis_DoubanMovie_Crawler/4ab7acef95d1129f0250fd14de80ebb9f5d612ef/spark_movie/out/production/spark_movie/com/CommontNum.class -------------------------------------------------------------------------------- /spark_movie/out/production/spark_movie/com/LvNum.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/Python_Spark_Analysis_DoubanMovie_Crawler/4ab7acef95d1129f0250fd14de80ebb9f5d612ef/spark_movie/out/production/spark_movie/com/LvNum.class -------------------------------------------------------------------------------- /spark_movie/out/production/spark_movie/com/TypeNum.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/Python_Spark_Analysis_DoubanMovie_Crawler/4ab7acef95d1129f0250fd14de80ebb9f5d612ef/spark_movie/out/production/spark_movie/com/TypeNum.class -------------------------------------------------------------------------------- /spark_movie/out/production/spark_movie/com/WordNum.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/Python_Spark_Analysis_DoubanMovie_Crawler/4ab7acef95d1129f0250fd14de80ebb9f5d612ef/spark_movie/out/production/spark_movie/com/WordNum.class -------------------------------------------------------------------------------- /spark_movie/out/production/spark_movie/com/WordUtil.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/Python_Spark_Analysis_DoubanMovie_Crawler/4ab7acef95d1129f0250fd14de80ebb9f5d612ef/spark_movie/out/production/spark_movie/com/WordUtil.class -------------------------------------------------------------------------------- /spark_movie/out/production/spark_movie/com/YearNum.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/Python_Spark_Analysis_DoubanMovie_Crawler/4ab7acef95d1129f0250fd14de80ebb9f5d612ef/spark_movie/out/production/spark_movie/com/YearNum.class -------------------------------------------------------------------------------- /spark_movie/output/._SUCCESS.crc: -------------------------------------------------------------------------------- 1 | crc -------------------------------------------------------------------------------- /spark_movie/output/.part-r-00000.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/Python_Spark_Analysis_DoubanMovie_Crawler/4ab7acef95d1129f0250fd14de80ebb9f5d612ef/spark_movie/output/.part-r-00000.crc -------------------------------------------------------------------------------- /spark_movie/output/_SUCCESS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/Python_Spark_Analysis_DoubanMovie_Crawler/4ab7acef95d1129f0250fd14de80ebb9f5d612ef/spark_movie/output/_SUCCESS -------------------------------------------------------------------------------- /spark_movie/spark_movie.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie/src/com/CommontNum.java: -------------------------------------------------------------------------------- 1 | package com; 2 | 3 | import org.apache.spark.api.java.JavaPairRDD; 4 | import org.apache.spark.api.java.JavaRDD; 5 | import org.apache.spark.sql.Dataset; 6 | import org.apache.spark.sql.Row; 7 | import org.apache.spark.sql.RowFactory; 8 | import org.apache.spark.sql.SparkSession; 9 | import org.apache.spark.sql.types.DataTypes; 10 | import org.apache.spark.sql.types.StructType; 11 | import scala.Tuple2; 12 | 13 | import java.util.ArrayList; 14 | import java.util.List; 15 | import java.util.Properties; 16 | 17 | /** 18 | * 统计影评时间统计分析数 19 | */ 20 | public class CommontNum { 21 | public static void main(String[] args) { 22 | SparkSession sparkSession = new SparkSession.Builder().master("local").appName("count year numbers").getOrCreate(); 23 | JavaRDD javaRDD = sparkSession.read().textFile("movie.csv").javaRDD(); 24 | JavaRDD yearRDD = javaRDD.map(line -> line.split(",")[4].substring(0,10)); 25 | JavaPairRDD javaPairRDD = yearRDD.mapToPair(word -> new Tuple2<>(word, 1)); 26 | JavaPairRDD reduceByKey = javaPairRDD.reduceByKey((x, y) -> x + y); 27 | reduceByKey.collect().forEach(System.out::println); 28 | JavaRDD rowJavaRDD = reduceByKey.map(x -> RowFactory.create(x._1, x._2)); 29 | //数据库内容 30 | String url = "jdbc:mysql://localhost:3306/spark_movie?useUnicode=true&characterEncoding=utf8"; 31 | Properties connectionProperties = new Properties(); 32 | connectionProperties.put("user", "root"); 33 | connectionProperties.put("password", "123456"); 34 | connectionProperties.put("driver", "com.mysql.jdbc.Driver"); 35 | /** 36 | * 第二步:动态构造DataFrame的元数据。 37 | */ 38 | List structFields = new ArrayList(); 39 | structFields.add(DataTypes.createStructField("year", DataTypes.StringType, true)); 40 | structFields.add(DataTypes.createStructField("num", DataTypes.IntegerType, true)); 41 | 42 | //构建StructType,用于最后DataFrame元数据的描述 43 | StructType structType = DataTypes.createStructType(structFields); 44 | 45 | /** 46 | * 第三步:基于已有的元数据以及RDD来构造DataFrame 47 | */ 48 | Dataset dataFrame = sparkSession.createDataFrame(rowJavaRDD, structType); 49 | 50 | /** 51 | * 第四步:将数据写入到user表中 52 | */ 53 | dataFrame.write().mode("append").jdbc(url, "commentnum", connectionProperties); 54 | 55 | //停止SparkContext 56 | sparkSession.stop(); 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | # Datasource local storage ignored files 5 | /dataSources/ 6 | /dataSources.local.xml 7 | # Editor-based HTTP Client requests 8 | /httpRequests/ 9 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/codeStyles/codeStyleConfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 24 | 25 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/jarRepositories.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 14 | 15 | 19 | 20 | 24 | 25 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__cn_hutool_hutool_all_5_5_4.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__com_alibaba_druid_1_2_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__com_baomidou_mybatis_plus_3_2_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__com_baomidou_mybatis_plus_annotation_3_2_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__com_baomidou_mybatis_plus_boot_starter_3_2_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__com_baomidou_mybatis_plus_core_3_2_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__com_baomidou_mybatis_plus_extension_3_2_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__com_baomidou_mybatis_plus_generator_3_2_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__com_fasterxml_classmate_1_4_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_9_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_9_7.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_9_7.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_9_7.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_9_7.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__com_fasterxml_jackson_jaxrs_jackson_jaxrs_base_2_9_7.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__com_fasterxml_jackson_jaxrs_jackson_jaxrs_json_provider_2_9_7.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_jaxb_annotations_2_9_7.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_9_7.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__com_fasterxml_woodstox_woodstox_core_5_0_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__com_github_jsqlparser_jsqlparser_2_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__com_github_stephenc_jcip_jcip_annotations_1_0_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__com_google_code_findbugs_jsr305_3_0_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__com_google_code_gson_gson_2_8_5.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__com_google_errorprone_error_prone_annotations_2_2_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__com_google_guava_failureaccess_1_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__com_google_guava_guava_27_0_jre.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__com_google_guava_listenablefuture_9999_0_empty_to_avoid_conflict_with_guava.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__com_google_j2objc_j2objc_annotations_1_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__com_google_protobuf_protobuf_java_2_5_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__com_google_re2j_re2j_1_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__com_nimbusds_nimbus_jose_jwt_7_9.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__com_squareup_okhttp_okhttp_2_7_5.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__com_squareup_okio_okio_1_6_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__com_sun_jersey_jersey_client_1_19.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__com_sun_jersey_jersey_core_1_19.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__com_sun_jersey_jersey_servlet_1_19.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__com_thoughtworks_paranamer_paranamer_2_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__com_zaxxer_HikariCP_3_2_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__commons_beanutils_commons_beanutils_1_9_4.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__commons_cli_commons_cli_1_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__commons_codec_commons_codec_1_11.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__commons_collections_commons_collections_3_2_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__commons_io_commons_io_2_5.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__commons_logging_commons_logging_1_1_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__commons_net_commons_net_3_6.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__dnsjava_dnsjava_2_1_7.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__javax_activation_javax_activation_api_1_2_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__javax_annotation_javax_annotation_api_1_3_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__javax_servlet_javax_servlet_api_4_0_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__javax_servlet_jsp_jsp_api_2_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__javax_validation_validation_api_2_0_1_Final.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__javax_ws_rs_jsr311_api_1_1_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__javax_xml_bind_jaxb_api_2_3_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__log4j_log4j_1_2_17.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__mysql_mysql_connector_java_5_1_35.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__net_minidev_accessors_smart_1_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__net_minidev_json_smart_2_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_apache_avro_avro_1_7_7.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_apache_commons_commons_compress_1_19.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_apache_commons_commons_configuration2_2_1_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_8_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_apache_commons_commons_math3_3_1_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_apache_commons_commons_text_1_4.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_apache_curator_curator_client_2_13_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_apache_curator_curator_framework_2_13_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_apache_curator_curator_recipes_2_13_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_apache_hadoop_hadoop_annotations_3_2_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_apache_hadoop_hadoop_auth_3_2_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_apache_hadoop_hadoop_client_3_2_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_apache_hadoop_hadoop_common_3_2_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_apache_hadoop_hadoop_hdfs_client_3_2_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_apache_hadoop_hadoop_mapreduce_client_common_3_2_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_apache_hadoop_hadoop_mapreduce_client_core_3_2_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_apache_hadoop_hadoop_mapreduce_client_jobclient_3_2_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_apache_hadoop_hadoop_yarn_api_3_2_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_apache_hadoop_hadoop_yarn_client_3_2_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_apache_hadoop_hadoop_yarn_common_3_2_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_apache_htrace_htrace_core4_4_1_0_incubating.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_apache_httpcomponents_httpclient_4_5_6.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_apache_httpcomponents_httpcore_4_4_10.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_apache_kerby_kerb_admin_1_0_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_apache_kerby_kerb_client_1_0_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_apache_kerby_kerb_common_1_0_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_apache_kerby_kerb_core_1_0_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_apache_kerby_kerb_crypto_1_0_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_apache_kerby_kerb_identity_1_0_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_apache_kerby_kerb_server_1_0_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_apache_kerby_kerb_simplekdc_1_0_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_apache_kerby_kerb_util_1_0_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_apache_kerby_kerby_asn1_1_0_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_apache_kerby_kerby_config_1_0_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_apache_kerby_kerby_pkix_1_0_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_apache_kerby_kerby_util_1_0_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_apache_kerby_kerby_xdr_1_0_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_apache_kerby_token_provider_1_0_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_11_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_11_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_8_5_45.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_8_5_45.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_8_5_45.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_attoparser_attoparser_2_0_5_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_checkerframework_checker_qual_2_5_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_codehaus_jackson_jackson_core_asl_1_9_13.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_codehaus_jackson_jackson_mapper_asl_1_9_13.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_codehaus_mojo_animal_sniffer_annotations_1_17.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_codehaus_woodstox_stax2_api_3_1_4.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_eclipse_jetty_jetty_security_9_4_12_v20180830.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_eclipse_jetty_jetty_servlet_9_4_12_v20180830.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_eclipse_jetty_jetty_util_9_4_12_v20180830.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_eclipse_jetty_jetty_webapp_9_4_12_v20180830.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_eclipse_jetty_jetty_xml_9_4_12_v20180830.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_0_13_Final.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_3_2_Final.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_mybatis_mybatis_3_5_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_mybatis_mybatis_spring_2_0_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_ow2_asm_asm_5_0_4.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_projectlombok_lombok_1_18_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_25.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_25.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_1_0_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_1_0_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_1_0_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_1_0_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_1_0_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_1_0_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_thymeleaf_2_1_0_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_1_0_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_1_0_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_springframework_spring_aop_5_1_2_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_springframework_spring_beans_5_1_2_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_springframework_spring_context_5_1_2_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_springframework_spring_core_5_1_2_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_springframework_spring_expression_5_1_2_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_springframework_spring_jcl_5_1_2_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_springframework_spring_jdbc_5_1_2_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_springframework_spring_tx_5_1_2_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_springframework_spring_web_5_1_2_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_springframework_spring_webmvc_5_1_2_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_thymeleaf_extras_thymeleaf_extras_java8time_3_0_1_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_thymeleaf_thymeleaf_3_0_11_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_thymeleaf_thymeleaf_spring5_3_0_11_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_unbescape_unbescape_1_1_6_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_xerial_snappy_snappy_java_1_0_5.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/libraries/Maven__org_yaml_snakeyaml_1_23.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /spark_movie_web/.idea/uiDesigner.xml: -------------------------------------------------------------------------------- 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 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | -------------------------------------------------------------------------------- /spark_movie_web/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 4.0.0 6 | 7 | com.example 8 | spark_movie_web 9 | 1.0-SNAPSHOT 10 | 11 | 12 | org.springframework.boot 13 | spring-boot-starter-parent 14 | 2.1.0.RELEASE 15 | 16 | 17 | 18 | UTF-8 19 | UTF-8 20 | 1.8 21 | 8.5.45 22 | 3.2.0 23 | 24 | 25 | 26 | 27 | 28 | org.springframework.boot 29 | spring-boot-starter-web 30 | 31 | 32 | org.springframework.boot 33 | spring-boot-starter-thymeleaf 34 | 35 | 36 | 37 | com.baomidou 38 | mybatis-plus-boot-starter 39 | ${mybatis-plus.version} 40 | 41 | 42 | com.baomidou 43 | mybatis-plus-generator 44 | ${mybatis-plus.version} 45 | 46 | 47 | 48 | 49 | 50 | com.alibaba 51 | druid 52 | 1.2.2 53 | 54 | 55 | 56 | 57 | mysql 58 | mysql-connector-java 59 | 5.1.35 60 | 61 | 62 | 63 | cn.hutool 64 | hutool-all 65 | 5.5.4 66 | 67 | 68 | 69 | org.projectlombok 70 | lombok 71 | 72 | 73 | org.apache.hadoop 74 | hadoop-client 75 | 3.2.2 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | org.springframework.boot 85 | spring-boot-maven-plugin 86 | 87 | true 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | public 96 | aliyun nexus 97 | http://maven.aliyun.com/nexus/content/groups/public/ 98 | 99 | true 100 | 101 | 102 | 103 | 104 | 105 | 106 | public 107 | aliyun nexus 108 | http://maven.aliyun.com/nexus/content/groups/public/ 109 | 110 | true 111 | 112 | 113 | false 114 | 115 | 116 | 117 | 118 | -------------------------------------------------------------------------------- /spark_movie_web/src/main/java/com/movie/MovieApp.java: -------------------------------------------------------------------------------- 1 | package com.movie; 2 | 3 | import org.mybatis.spring.annotation.MapperScan; 4 | import org.springframework.boot.SpringApplication; 5 | import org.springframework.boot.autoconfigure.SpringBootApplication; 6 | 7 | @MapperScan("com/movie/mapper") 8 | @SpringBootApplication 9 | public class MovieApp { 10 | 11 | public static void main(String[] args) { 12 | SpringApplication.run(MovieApp.class, args); 13 | System.out.println("页面的访问地址:http://localhost:8080/"); 14 | } 15 | } -------------------------------------------------------------------------------- /spark_movie_web/src/main/java/com/movie/config/Conf.java: -------------------------------------------------------------------------------- 1 | package com.movie.config; 2 | 3 | 4 | import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; 5 | import org.springframework.context.annotation.Bean; 6 | import org.springframework.context.annotation.Configuration; 7 | 8 | @Configuration 9 | public class Conf { 10 | @Bean 11 | public PaginationInterceptor paginationInterceptor() { 12 | 13 | return new PaginationInterceptor(); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spark_movie_web/src/main/java/com/movie/config/LoginFilter.java: -------------------------------------------------------------------------------- 1 | package com.movie.config; 2 | 3 | import org.springframework.web.servlet.HandlerInterceptor; 4 | 5 | import javax.servlet.http.HttpServletRequest; 6 | import javax.servlet.http.HttpServletResponse; 7 | 8 | public class LoginFilter implements HandlerInterceptor { 9 | @Override 10 | public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { 11 | Object loginUser = request.getSession().getAttribute("loginUser"); 12 | if (loginUser == null) { 13 | request.setAttribute("login_msg", "没有权限,请先登录。"); 14 | request.getRequestDispatcher("/login.html").forward(request, response); 15 | return false; 16 | } else { 17 | return true; 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /spark_movie_web/src/main/java/com/movie/config/RouteConfig.java: -------------------------------------------------------------------------------- 1 | package com.movie.config; 2 | 3 | import org.springframework.context.annotation.Configuration; 4 | import org.springframework.web.servlet.config.annotation.InterceptorRegistry; 5 | import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; 6 | import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; 7 | 8 | @Configuration 9 | public class RouteConfig implements WebMvcConfigurer { 10 | @Override 11 | public void addViewControllers(ViewControllerRegistry registry) { 12 | registry.addViewController("main.html").setViewName("index"); 13 | registry.addViewController("login.html").setViewName("login"); 14 | registry.addViewController("register.html").setViewName("register"); 15 | } 16 | 17 | @Override 18 | public void addInterceptors(InterceptorRegistry registry) { 19 | registry.addInterceptor(new LoginFilter()).addPathPatterns("/**") 20 | .excludePathPatterns("/index", "/user/login", "/login", "/login.html", "/user/register", "/register", "/register.html", "/css/**", "/layui/**", "/images/**", "/js/**"); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /spark_movie_web/src/main/java/com/movie/controller/IndexController.java: -------------------------------------------------------------------------------- 1 | package com.movie.controller; 2 | 3 | import org.springframework.stereotype.Controller; 4 | import org.springframework.ui.Model; 5 | import org.springframework.web.bind.annotation.RequestMapping; 6 | 7 | @Controller 8 | public class IndexController { 9 | 10 | @RequestMapping("/") 11 | public String index(Model model) { 12 | return "login.html"; 13 | } 14 | } -------------------------------------------------------------------------------- /spark_movie_web/src/main/java/com/movie/controller/MovieController.java: -------------------------------------------------------------------------------- 1 | package com.movie.controller; 2 | 3 | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 4 | import com.movie.entity.*; 5 | import com.movie.mapper.*; 6 | import org.springframework.web.bind.annotation.GetMapping; 7 | import org.springframework.web.bind.annotation.RequestMapping; 8 | import org.springframework.web.bind.annotation.RestController; 9 | 10 | import javax.annotation.Resource; 11 | import java.util.List; 12 | 13 | @RestController 14 | public class MovieController { 15 | @Resource 16 | private LvNumMapper lvNumMapper; 17 | @Resource 18 | private TypeMapper typeMapper; 19 | @Resource 20 | private YearNumMapper yearNumMapper; 21 | @Resource 22 | private WordsMapper wordsMapper; 23 | @Resource 24 | private CommentNumMapper commentNumMapper; 25 | 26 | @GetMapping 27 | @RequestMapping("/year") 28 | public Object year() { 29 | // 查询数据库数据 30 | QueryWrapper queryWrapper = new QueryWrapper(); 31 | queryWrapper.orderByAsc("year"); 32 | return yearNumMapper.selectList(queryWrapper); 33 | } 34 | 35 | @GetMapping 36 | @RequestMapping("/yeartop") 37 | public Object yeartop() { 38 | // 查询数据库数据 39 | QueryWrapper queryWrapper = new QueryWrapper(); 40 | queryWrapper.orderByDesc("num"); 41 | queryWrapper.last("limit 20"); 42 | return yearNumMapper.selectList(queryWrapper); 43 | } 44 | 45 | 46 | @GetMapping 47 | @RequestMapping("/type") 48 | public Object type() { 49 | // 查询数据库数据 50 | return typeMapper.selectList(null); 51 | } 52 | 53 | @GetMapping 54 | @RequestMapping("/lvnum") 55 | public Object lvnum() { 56 | // 查询数据库数据 57 | return lvNumMapper.selectList(null); 58 | } 59 | 60 | @GetMapping 61 | @RequestMapping("/times") 62 | public Object times() { 63 | // 查询数据库数据 64 | QueryWrapper c = new QueryWrapper<>(); 65 | c.orderByDesc("num").last("limit 20"); 66 | return commentNumMapper.selectList(c); 67 | } 68 | 69 | @GetMapping 70 | @RequestMapping("/words") 71 | public Object words() { 72 | QueryWrapper c = new QueryWrapper<>(); 73 | c.orderByDesc("value").last("limit 20"); 74 | // 查询数据库数据 75 | return wordsMapper.selectList(c); 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /spark_movie_web/src/main/java/com/movie/controller/UserController.java: -------------------------------------------------------------------------------- 1 | package com.movie.controller; 2 | 3 | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 4 | import com.movie.entity.UserInfo; 5 | import com.movie.mapper.UserMapper; 6 | import com.movie.utils.AccountValidatorUtil; 7 | import org.apache.ibatis.annotations.Param; 8 | import org.springframework.stereotype.Controller; 9 | import org.springframework.ui.Model; 10 | import org.springframework.util.ObjectUtils; 11 | import org.springframework.web.bind.annotation.*; 12 | import org.springframework.web.servlet.mvc.support.RedirectAttributes; 13 | 14 | import javax.annotation.Resource; 15 | import javax.servlet.http.HttpSession; 16 | 17 | @Controller 18 | public class UserController { 19 | @Resource 20 | private UserMapper userMapper; 21 | 22 | @RequestMapping("/user/login") 23 | public String login(@RequestParam("loginName") String loginName, @RequestParam("password") String password, Model model, RedirectAttributes attributes, HttpSession session) { 24 | if (ObjectUtils.isEmpty(loginName) || ObjectUtils.isEmpty(password)) { 25 | model.addAttribute("login_msg", "关键信息不能为空。"); 26 | return "login"; 27 | } 28 | QueryWrapper queryWrapper = new QueryWrapper(); 29 | queryWrapper.eq("login_name", loginName); 30 | UserInfo user = userMapper.selectOne(queryWrapper); 31 | if (user == null || !user.getPassword().equals(password)) { 32 | model.addAttribute("login_msg", "用户名或密码错误。"); 33 | return "login"; 34 | } else { 35 | session.setAttribute("loginUser", user); 36 | return "redirect:/main.html"; 37 | } 38 | } 39 | 40 | @RequestMapping("/logout") 41 | public String logout(HttpSession session) { 42 | session.invalidate(); 43 | return "redirect:/main.html"; 44 | } 45 | 46 | @PostMapping("/user/register") 47 | public String register(UserInfo user, @Param("confirmPassword") String confirmPassword, Model model) { 48 | if (user == null || ObjectUtils.isEmpty(user.getLoginName()) || ObjectUtils.isEmpty(user.getPassword()) || ObjectUtils.isEmpty(confirmPassword)) { 49 | model.addAttribute("register_msg", "关键信息不能为空,请输入!"); 50 | return "register"; 51 | } 52 | if (!AccountValidatorUtil.isMobile(user.getLoginName())) { 53 | model.addAttribute("register_msg", "账号只能是手机号!"); 54 | return "register"; 55 | } 56 | if (!AccountValidatorUtil.isPassword(user.getPassword())) { 57 | model.addAttribute("register_msg", "密码只能是6~20位的字母和数字。"); 58 | return "register"; 59 | } 60 | 61 | QueryWrapper queryWrapper = new QueryWrapper(); 62 | queryWrapper.eq("login_name", user.getLoginName()); 63 | UserInfo oldUser = userMapper.selectOne(queryWrapper); 64 | if (oldUser != null) { 65 | model.addAttribute("register_msg", "账号已存在,换个手机试试!"); 66 | return "register"; 67 | } 68 | if (!user.getPassword().equals(confirmPassword)) { 69 | model.addAttribute("register_msg", "两次密码不一致!"); 70 | } else { 71 | userMapper.insert(user); 72 | model.addAttribute("register_msg", "注册成功,请登录。"); 73 | } 74 | return "register"; 75 | } 76 | 77 | 78 | } 79 | -------------------------------------------------------------------------------- /spark_movie_web/src/main/java/com/movie/entity/CommentNum.java: -------------------------------------------------------------------------------- 1 | package com.movie.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.TableName; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | @Data 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | @TableName("commentnum") 12 | public class CommentNum { 13 | private String year; 14 | private int num; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spark_movie_web/src/main/java/com/movie/entity/LvNum.java: -------------------------------------------------------------------------------- 1 | package com.movie.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.TableName; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | @Data 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | @TableName("lvnum") 12 | public class LvNum { 13 | private String name; 14 | private int value; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spark_movie_web/src/main/java/com/movie/entity/Type.java: -------------------------------------------------------------------------------- 1 | package com.movie.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.TableName; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | @Data 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | @TableName("type") 12 | public class Type { 13 | private String name; 14 | private int value; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spark_movie_web/src/main/java/com/movie/entity/UserInfo.java: -------------------------------------------------------------------------------- 1 | package com.movie.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.IdType; 4 | import com.baomidou.mybatisplus.annotation.TableId; 5 | import com.baomidou.mybatisplus.annotation.TableName; 6 | import lombok.Data; 7 | 8 | @Data 9 | @TableName("user") 10 | public class UserInfo { 11 | @TableId(type = IdType.AUTO) 12 | private Long id; 13 | private String loginName; 14 | private String name; 15 | private String password; 16 | private int role;//0普通用户,1管理员 17 | } 18 | -------------------------------------------------------------------------------- /spark_movie_web/src/main/java/com/movie/entity/Words.java: -------------------------------------------------------------------------------- 1 | package com.movie.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.TableName; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | @Data 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | @TableName("words") 12 | public class Words { 13 | private String name; 14 | private int value; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spark_movie_web/src/main/java/com/movie/entity/YearNum.java: -------------------------------------------------------------------------------- 1 | package com.movie.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.TableName; 4 | import lombok.Data; 5 | 6 | @Data 7 | @TableName("yearnum") 8 | public class YearNum { 9 | private String year; 10 | private int num; 11 | } 12 | -------------------------------------------------------------------------------- /spark_movie_web/src/main/java/com/movie/etl/MapReduceETL.java: -------------------------------------------------------------------------------- 1 | package com.movie.etl; 2 | 3 | import org.apache.hadoop.conf.Configuration; 4 | import org.apache.hadoop.fs.Path; 5 | import org.apache.hadoop.io.LongWritable; 6 | import org.apache.hadoop.io.NullWritable; 7 | import org.apache.hadoop.io.Text; 8 | import org.apache.hadoop.mapreduce.Job; 9 | import org.apache.hadoop.mapreduce.Mapper; 10 | import org.apache.hadoop.mapreduce.Reducer; 11 | import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; 12 | import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; 13 | import org.apache.hadoop.util.GenericOptionsParser; 14 | 15 | import java.io.IOException; 16 | 17 | /** 18 | * 数据清洗,去掉字段数不对的脏数据 19 | * 去掉评分不对的数据 20 | * 去掉表头 21 | */ 22 | public class MapReduceETL { 23 | public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException { 24 | String[] otherArgs = new GenericOptionsParser(args).getRemainingArgs(); 25 | if (otherArgs.length != 2) { 26 | System.out.println("参数不对,输入路径 and 输出路径."); 27 | System.exit(2); 28 | } 29 | 30 | Configuration conf = new Configuration(); 31 | Job job = Job.getInstance(conf); 32 | job.setJarByClass(MapReduceETL.class); 33 | job.setMapperClass(map.class); 34 | job.setMapOutputKeyClass(Text.class); 35 | job.setMapOutputValueClass(NullWritable.class); 36 | job.setReducerClass(reduce.class); 37 | job.setOutputKeyClass(Text.class); 38 | job.setOutputValueClass(NullWritable.class); 39 | 40 | for (int i = 0; i < otherArgs.length - 1; i++) { 41 | // 设置需要统计的文件的输入路径 42 | FileInputFormat.addInputPath(job, new Path(otherArgs[i])); 43 | } 44 | FileOutputFormat.setOutputPath(job, new Path(otherArgs[otherArgs.length - 1])); 45 | System.exit(job.waitForCompletion(true) ? 0 : 1); 46 | } 47 | 48 | public static class map extends Mapper { 49 | 50 | @Override 51 | protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException { 52 | try { 53 | String[] arrs = value.toString().split(","); 54 | if (arrs.length != 6) { 55 | System.out.println("字段数不对,脏数据跳过!"); 56 | return; 57 | } 58 | double score = Double.parseDouble(arrs[3]); 59 | context.write(value, NullWritable.get()); 60 | } catch (Exception e) { 61 | System.out.println("评分格式不对,脏数据跳过!"); 62 | return; 63 | } 64 | } 65 | } 66 | 67 | public static class reduce extends Reducer { 68 | @Override 69 | protected void reduce(Text key, Iterable values, Context context) throws IOException, InterruptedException { 70 | context.write(key, NullWritable.get()); 71 | } 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /spark_movie_web/src/main/java/com/movie/mapper/CommentNumMapper.java: -------------------------------------------------------------------------------- 1 | package com.movie.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.movie.entity.CommentNum; 5 | import com.movie.entity.LvNum; 6 | 7 | public interface CommentNumMapper extends BaseMapper { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /spark_movie_web/src/main/java/com/movie/mapper/LvNumMapper.java: -------------------------------------------------------------------------------- 1 | package com.movie.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.movie.entity.LvNum; 5 | import com.movie.entity.Type; 6 | 7 | public interface LvNumMapper extends BaseMapper { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /spark_movie_web/src/main/java/com/movie/mapper/TypeMapper.java: -------------------------------------------------------------------------------- 1 | package com.movie.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.movie.entity.Type; 5 | 6 | public interface TypeMapper extends BaseMapper { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /spark_movie_web/src/main/java/com/movie/mapper/UserMapper.java: -------------------------------------------------------------------------------- 1 | package com.movie.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.movie.entity.UserInfo; 5 | 6 | public interface UserMapper extends BaseMapper { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /spark_movie_web/src/main/java/com/movie/mapper/WordsMapper.java: -------------------------------------------------------------------------------- 1 | package com.movie.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.movie.entity.LvNum; 5 | import com.movie.entity.Words; 6 | 7 | public interface WordsMapper extends BaseMapper { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /spark_movie_web/src/main/java/com/movie/mapper/YearNumMapper.java: -------------------------------------------------------------------------------- 1 | package com.movie.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.movie.entity.YearNum; 5 | 6 | public interface YearNumMapper extends BaseMapper { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /spark_movie_web/src/main/java/com/movie/utils/AccountValidatorUtil.java: -------------------------------------------------------------------------------- 1 | package com.movie.utils; 2 | 3 | import java.util.regex.Pattern; 4 | 5 | /** 6 | * 账户相关属性验证工具 7 | */ 8 | public class AccountValidatorUtil { 9 | /** 10 | * 正则表达式:验证用户名 11 | */ 12 | public static final String REGEX_USERNAME = "^[a-zA-Z]\\w{5,20}$"; 13 | 14 | /** 15 | * 正则表达式:验证密码 16 | */ 17 | public static final String REGEX_PASSWORD = "^[a-zA-Z0-9]{6,20}$"; 18 | 19 | /** 20 | * 正则表达式:验证手机号 21 | */ 22 | public static final String REGEX_MOBILE = "^((17[0-9])|(14[0-9])|(13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$"; 23 | 24 | /** 25 | * 正则表达式:验证邮箱 26 | */ 27 | public static final String REGEX_EMAIL = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$"; 28 | 29 | /** 30 | * 正则表达式:验证汉字 31 | */ 32 | public static final String REGEX_CHINESE = "^[\u4e00-\u9fa5],{0,}$"; 33 | 34 | /** 35 | * 正则表达式:验证身份证 36 | */ 37 | public static final String REGEX_ID_CARD = "(^\\d{18}$)|(^\\d{15}$)"; 38 | 39 | /** 40 | * 正则表达式:验证URL 41 | */ 42 | public static final String REGEX_URL = "http(s)?://([\\w-]+\\.)+[\\w-]+(/[\\w- ./?%&=]*)?"; 43 | 44 | /** 45 | * 正则表达式:验证IP地址 46 | */ 47 | public static final String REGEX_IP_ADDR = "(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)"; 48 | 49 | /** 50 | * 校验用户名 51 | * 52 | * @param username 53 | * @return 校验通过返回true,否则返回false 54 | */ 55 | public static boolean isUsername(String username) { 56 | return Pattern.matches(REGEX_USERNAME, username); 57 | } 58 | 59 | /** 60 | * 校验密码 61 | * 62 | * @param password 63 | * @return 校验通过返回true,否则返回false 64 | */ 65 | public static boolean isPassword(String password) { 66 | return Pattern.matches(REGEX_PASSWORD, password); 67 | } 68 | 69 | /** 70 | * 校验手机号 71 | * 72 | * @param mobile 73 | * @return 校验通过返回true,否则返回false 74 | */ 75 | public static boolean isMobile(String mobile) { 76 | return Pattern.matches(REGEX_MOBILE, mobile); 77 | } 78 | 79 | /** 80 | * 校验邮箱 81 | * 82 | * @param email 83 | * @return 校验通过返回true,否则返回false 84 | */ 85 | public static boolean isEmail(String email) { 86 | return Pattern.matches(REGEX_EMAIL, email); 87 | } 88 | 89 | /** 90 | * 校验汉字 91 | * 92 | * @param chinese 93 | * @return 校验通过返回true,否则返回false 94 | */ 95 | public static boolean isChinese(String chinese) { 96 | return Pattern.matches(REGEX_CHINESE, chinese); 97 | } 98 | 99 | /** 100 | * 校验身份证 101 | * 102 | * @param idCard 103 | * @return 校验通过返回true,否则返回false 104 | */ 105 | public static boolean isIDCard(String idCard) { 106 | return Pattern.matches(REGEX_ID_CARD, idCard); 107 | } 108 | 109 | /** 110 | * 校验URL 111 | * 112 | * @param url 113 | * @return 校验通过返回true,否则返回false 114 | */ 115 | public static boolean isUrl(String url) { 116 | return Pattern.matches(REGEX_URL, url); 117 | } 118 | 119 | /** 120 | * 校验IP地址 121 | * 122 | * @param ipAddr 123 | * @return 124 | */ 125 | public static boolean isIPAddr(String ipAddr) { 126 | return Pattern.matches(REGEX_IP_ADDR, ipAddr); 127 | } 128 | } 129 | -------------------------------------------------------------------------------- /spark_movie_web/src/main/resources/application.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | datasource: 3 | driver-class-name: com.mysql.jdbc.Driver 4 | username: root 5 | password: 123456 6 | url: jdbc:mysql://localhost:3306/spark_movie?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false&serverTimezone=GMT%2b8 7 | type: com.alibaba.druid.pool.DruidDataSource 8 | 9 | logging: 10 | level: 11 | com: 12 | movie: 13 | debug 14 | -------------------------------------------------------------------------------- /spark_movie_web/src/main/resources/static/css/home.css: -------------------------------------------------------------------------------- 1 | body{ background:#eeeeee url(../images/bgm.jpg) center top; background-size:cover;color:#ffffff;font-size: .1rem;} -------------------------------------------------------------------------------- /spark_movie_web/src/main/resources/static/css/login.css: -------------------------------------------------------------------------------- 1 | body{ background-color:#eeeeee;background-image: url("/images/bgm.jpg")} 2 | .login 3 | { 4 | margin: 200px auto 0 auto; 5 | min-height: 420px; 6 | max-width: 420px; 7 | padding: 40px; 8 | background-color: #ffffff; 9 | margin-left: auto; 10 | margin-right: auto; 11 | border-radius: 4px; 12 | box-sizing: border-box; 13 | box-shadow: 3px 3px 3px #000; 14 | 15 | } 16 | hr.hr15{ 17 | height: 15px; 18 | border: none; 19 | margin: 0px; 20 | padding: 0px; 21 | width: 100%; 22 | } 23 | input[type=text], input[type=password], 24 | select { 25 | border: 1px solid #b60e44; 26 | vertical-align: middle; 27 | border-radius: 3px; 28 | height: 50px; 29 | width: 90%; 30 | padding: 0px 16px; 31 | font-size: 14px; 32 | color: #555555; 33 | outline: none; 34 | } 35 | input[type=text]:focus, input[type=password]:focus, 36 | select:focus { 37 | border: 1px solid #b60e44; 38 | } 39 | 40 | input[type=submit], input[type=button] 41 | { 42 | display: inline-block; 43 | vertical-align: middle; 44 | padding: 12px 24px; 45 | margin: 0px; 46 | font-size: 18px; 47 | line-height: 24px; 48 | text-align: center; 49 | white-space: nowrap; 50 | cursor: pointer; 51 | background-color: #b60e44; 52 | border-radius: 3px; 53 | color: #ffffff; 54 | border: none; 55 | -webkit-appearance: none; 56 | outline: none; 57 | width: 100%; 58 | letter-spacing: 15px; 59 | } 60 | 61 | .message{ 62 | padding: 18px 10px 18px 60px; 63 | background: #b60e44; 64 | position: relative; 65 | color: #ffffff; 66 | font-size: 18px; 67 | font-weight: bold; 68 | } -------------------------------------------------------------------------------- /spark_movie_web/src/main/resources/static/css/reg.css: -------------------------------------------------------------------------------- 1 | body{ background-color:#eeeeee;background-image: url("/images/bgm.jpg")} 2 | input[type=text], input[type=password], 3 | select { 4 | border: 1px solid #b60e44; 5 | vertical-align: middle; 6 | border-radius: 3px; 7 | height: 30px; 8 | width: 70%; 9 | padding: 0px 16px; 10 | font-size: 14px; 11 | color: #555555; 12 | outline: none; 13 | } 14 | 15 | input[type=text]:focus, input[type=password]:focus, 16 | select:focus { 17 | border: 1px solid #b60e44; 18 | } 19 | 20 | input[type=submit], input[type=button], input[type=reset] { 21 | display: inline-block; 22 | vertical-align: middle; 23 | padding: 12px 24px; 24 | margin: 0px; 25 | font-size: 18px; 26 | line-height: 20px; 27 | text-align: center; 28 | white-space: nowrap; 29 | cursor: pointer; 30 | background-color: #b60e44; 31 | border-radius: 3px; 32 | color: #ffffff; 33 | border: none; 34 | -webkit-appearance: none; 35 | outline: none; 36 | width: 35%; 37 | letter-spacing: 15px; 38 | } 39 | 40 | .tdright { 41 | padding: 10px; 42 | text-align: right; 43 | } 44 | 45 | .message { 46 | margin: 10px 0 0 -58px; 47 | padding: 18px 10px 18px 60px; 48 | position: relative; 49 | color: #b60e44; 50 | font-size: 18px; 51 | font-weight: bold; 52 | } 53 | 54 | .tocenter { 55 | margin-top: 15%; 56 | margin-left: 38% 57 | } 58 | -------------------------------------------------------------------------------- /spark_movie_web/src/main/resources/static/home.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 主页 6 | 7 | 8 | 9 |
基于Spark的豆瓣电影数据分析系统
10 | 11 | 12 | -------------------------------------------------------------------------------- /spark_movie_web/src/main/resources/static/images/bgm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/Python_Spark_Analysis_DoubanMovie_Crawler/4ab7acef95d1129f0250fd14de80ebb9f5d612ef/spark_movie_web/src/main/resources/static/images/bgm.jpg -------------------------------------------------------------------------------- /spark_movie_web/src/main/resources/static/layui/css/modules/code.css: -------------------------------------------------------------------------------- 1 | html #layuicss-skincodecss{display:none;position:absolute;width:1989px}.layui-code-h3,.layui-code-view{position:relative;font-size:12px}.layui-code-view{display:block;margin:10px 0;padding:0;border:1px solid #eee;border-left-width:6px;background-color:#FAFAFA;color:#333;font-family:Courier New}.layui-code-h3{padding:0 10px;height:40px;line-height:40px;border-bottom:1px solid #eee}.layui-code-h3 a{position:absolute;right:10px;top:0;color:#999}.layui-code-view .layui-code-ol{position:relative;overflow:auto}.layui-code-view .layui-code-ol li{position:relative;margin-left:45px;line-height:20px;padding:0 10px;border-left:1px solid #e2e2e2;list-style-type:decimal-leading-zero;*list-style-type:decimal;background-color:#fff}.layui-code-view .layui-code-ol li:first-child{padding-top:10px}.layui-code-view .layui-code-ol li:last-child{padding-bottom:10px}.layui-code-view pre{margin:0}.layui-code-notepad{border:1px solid #0C0C0C;border-left-color:#3F3F3F;background-color:#0C0C0C;color:#C2BE9E}.layui-code-notepad .layui-code-h3{border-bottom:none}.layui-code-notepad .layui-code-ol li{background-color:#3F3F3F;border-left:none}.layui-code-demo .layui-code{visibility:visible!important;margin:-15px;border-top:none;border-right:none;border-bottom:none}.layui-code-demo .layui-tab-content{padding:15px;border-top:none} -------------------------------------------------------------------------------- /spark_movie_web/src/main/resources/static/layui/css/modules/laydate/default/laydate.css: -------------------------------------------------------------------------------- 1 | .laydate-set-ym,.layui-laydate,.layui-laydate *,.layui-laydate-list{box-sizing:border-box}html #layuicss-laydate{display:none;position:absolute;width:1989px}.layui-laydate *{margin:0;padding:0}.layui-laydate{position:absolute;z-index:66666666;margin:5px 0;border-radius:2px;font-size:14px;-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;animation-name:laydate-downbit}.layui-laydate-main{width:272px}.layui-laydate-content td,.layui-laydate-header *,.layui-laydate-list li{transition-duration:.3s;-webkit-transition-duration:.3s}@keyframes laydate-downbit{0%{opacity:.3;transform:translate3d(0,-5px,0)}100%{opacity:1;transform:translate3d(0,0,0)}}.layui-laydate-static{position:relative;z-index:0;display:inline-block;margin:0;-webkit-animation:none;animation:none}.laydate-ym-show .laydate-next-m,.laydate-ym-show .laydate-prev-m{display:none!important}.laydate-ym-show .laydate-next-y,.laydate-ym-show .laydate-prev-y{display:inline-block!important}.laydate-time-show .laydate-set-ym span[lay-type=month],.laydate-time-show .laydate-set-ym span[lay-type=year],.laydate-time-show .layui-laydate-header .layui-icon,.laydate-ym-show .laydate-set-ym span[lay-type=month]{display:none!important}.layui-laydate-header{position:relative;line-height:30px;padding:10px 70px 5px}.layui-laydate-header *{display:inline-block;vertical-align:bottom}.layui-laydate-header i{position:absolute;top:10px;padding:0 5px;color:#999;font-size:18px;cursor:pointer}.layui-laydate-header i.laydate-prev-y{left:15px}.layui-laydate-header i.laydate-prev-m{left:45px}.layui-laydate-header i.laydate-next-y{right:15px}.layui-laydate-header i.laydate-next-m{right:45px}.laydate-set-ym{width:100%;text-align:center;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.laydate-set-ym span{padding:0 10px;cursor:pointer}.laydate-time-text{cursor:default!important}.layui-laydate-content{position:relative;padding:10px;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.layui-laydate-content table{border-collapse:collapse;border-spacing:0}.layui-laydate-content td,.layui-laydate-content th{width:36px;height:30px;padding:5px;text-align:center}.layui-laydate-content td{position:relative;cursor:pointer}.laydate-day-mark{position:absolute;left:0;top:0;width:100%;line-height:30px;font-size:12px;overflow:hidden}.laydate-day-mark::after{position:absolute;content:'';right:2px;top:2px;width:5px;height:5px;border-radius:50%}.layui-laydate-footer{position:relative;height:46px;line-height:26px;padding:10px}.layui-laydate-footer span{display:inline-block;vertical-align:top;height:26px;line-height:24px;padding:0 10px;border:1px solid #C9C9C9;border-radius:2px;background-color:#fff;font-size:12px;cursor:pointer;white-space:nowrap;transition:all .3s}.layui-laydate-list>li,.layui-laydate-range .layui-laydate-main{display:inline-block;vertical-align:middle}.layui-laydate-footer span:hover{color:#5FB878}.layui-laydate-footer span.layui-laydate-preview{cursor:default;border-color:transparent!important}.layui-laydate-footer span.layui-laydate-preview:hover{color:#666}.layui-laydate-footer span:first-child.layui-laydate-preview{padding-left:0}.laydate-footer-btns{position:absolute;right:10px;top:10px}.laydate-footer-btns span{margin:0 0 0 -1px}.layui-laydate-list{position:absolute;left:0;top:0;width:100%;height:100%;padding:10px;background-color:#fff}.layui-laydate-list>li{position:relative;width:33.3%;height:36px;line-height:36px;margin:3px 0;text-align:center;cursor:pointer}.laydate-month-list>li{width:25%;margin:17px 0}.laydate-time-list>li{height:100%;margin:0;line-height:normal;cursor:default}.laydate-time-list p{position:relative;top:-4px;line-height:29px}.laydate-time-list ol{height:181px;overflow:hidden}.laydate-time-list>li:hover ol{overflow-y:auto}.laydate-time-list ol li{width:130%;padding-left:33px;height:30px;line-height:30px;text-align:left;cursor:pointer}.layui-laydate-hint{position:absolute;top:115px;left:50%;width:250px;margin-left:-125px;line-height:20px;padding:15px;text-align:center;font-size:12px}.layui-laydate-range{width:546px}.layui-laydate-range .laydate-main-list-1 .layui-laydate-content,.layui-laydate-range .laydate-main-list-1 .layui-laydate-header{border-left:1px solid #e2e2e2}.layui-laydate,.layui-laydate-hint{border:1px solid #d2d2d2;box-shadow:0 2px 4px rgba(0,0,0,.12);background-color:#fff;color:#666}.layui-laydate-header{border-bottom:1px solid #e2e2e2}.layui-laydate-header i:hover,.layui-laydate-header span:hover{color:#5FB878}.layui-laydate-content{border-top:none 0;border-bottom:none 0}.layui-laydate-content th{font-weight:400;color:#333}.layui-laydate-content td{color:#666}.layui-laydate-content td.laydate-selected{background-color:#B5FFF8}.laydate-selected:hover{background-color:#00F7DE!important}.layui-laydate-content td:hover,.layui-laydate-list li:hover{background-color:#eee;color:#333}.laydate-time-list li ol{margin:0;padding:0;border:1px solid #e2e2e2;border-left-width:0}.laydate-time-list li:first-child ol{border-left-width:1px}.laydate-time-list>li:hover{background:0 0}.layui-laydate-content .laydate-day-next,.layui-laydate-content .laydate-day-prev{color:#d2d2d2}.laydate-selected.laydate-day-next,.laydate-selected.laydate-day-prev{background-color:#f8f8f8!important}.layui-laydate-footer{border-top:1px solid #e2e2e2}.layui-laydate-hint{color:#FF5722}.laydate-day-mark::after{background-color:#5FB878}.layui-laydate-content td.layui-this .laydate-day-mark::after{display:none}.layui-laydate-footer span[lay-type=date]{color:#5FB878}.layui-laydate .layui-this{background-color:#009688!important;color:#fff!important}.layui-laydate .laydate-disabled,.layui-laydate .laydate-disabled:hover{background:0 0!important;color:#d2d2d2!important;cursor:not-allowed!important;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.laydate-theme-molv{border:none}.laydate-theme-molv.layui-laydate-range{width:548px}.laydate-theme-molv .layui-laydate-main{width:274px}.laydate-theme-molv .layui-laydate-header{border:none;background-color:#009688}.laydate-theme-molv .layui-laydate-header i,.laydate-theme-molv .layui-laydate-header span{color:#f6f6f6}.laydate-theme-molv .layui-laydate-header i:hover,.laydate-theme-molv .layui-laydate-header span:hover{color:#fff}.laydate-theme-molv .layui-laydate-content{border:1px solid #e2e2e2;border-top:none;border-bottom:none}.laydate-theme-molv .laydate-main-list-1 .layui-laydate-content{border-left:none}.laydate-theme-grid .laydate-month-list>li,.laydate-theme-grid .laydate-year-list>li,.laydate-theme-grid .layui-laydate-content td,.laydate-theme-grid .layui-laydate-content thead,.laydate-theme-molv .layui-laydate-footer{border:1px solid #e2e2e2}.laydate-theme-grid .laydate-selected,.laydate-theme-grid .laydate-selected:hover{background-color:#f2f2f2!important;color:#009688!important}.laydate-theme-grid .laydate-selected.laydate-day-next,.laydate-theme-grid .laydate-selected.laydate-day-prev{color:#d2d2d2!important}.laydate-theme-grid .laydate-month-list,.laydate-theme-grid .laydate-year-list{margin:1px 0 0 1px}.laydate-theme-grid .laydate-month-list>li,.laydate-theme-grid .laydate-year-list>li{margin:0 -1px -1px 0}.laydate-theme-grid .laydate-year-list>li{height:43px;line-height:43px}.laydate-theme-grid .laydate-month-list>li{height:71px;line-height:71px} -------------------------------------------------------------------------------- /spark_movie_web/src/main/resources/static/layui/css/modules/layer/default/icon-ext.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/Python_Spark_Analysis_DoubanMovie_Crawler/4ab7acef95d1129f0250fd14de80ebb9f5d612ef/spark_movie_web/src/main/resources/static/layui/css/modules/layer/default/icon-ext.png -------------------------------------------------------------------------------- /spark_movie_web/src/main/resources/static/layui/css/modules/layer/default/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/Python_Spark_Analysis_DoubanMovie_Crawler/4ab7acef95d1129f0250fd14de80ebb9f5d612ef/spark_movie_web/src/main/resources/static/layui/css/modules/layer/default/icon.png -------------------------------------------------------------------------------- /spark_movie_web/src/main/resources/static/layui/css/modules/layer/default/loading-0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/Python_Spark_Analysis_DoubanMovie_Crawler/4ab7acef95d1129f0250fd14de80ebb9f5d612ef/spark_movie_web/src/main/resources/static/layui/css/modules/layer/default/loading-0.gif -------------------------------------------------------------------------------- /spark_movie_web/src/main/resources/static/layui/css/modules/layer/default/loading-1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/Python_Spark_Analysis_DoubanMovie_Crawler/4ab7acef95d1129f0250fd14de80ebb9f5d612ef/spark_movie_web/src/main/resources/static/layui/css/modules/layer/default/loading-1.gif -------------------------------------------------------------------------------- /spark_movie_web/src/main/resources/static/layui/css/modules/layer/default/loading-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/Python_Spark_Analysis_DoubanMovie_Crawler/4ab7acef95d1129f0250fd14de80ebb9f5d612ef/spark_movie_web/src/main/resources/static/layui/css/modules/layer/default/loading-2.gif -------------------------------------------------------------------------------- /spark_movie_web/src/main/resources/static/layui/font/iconfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/Python_Spark_Analysis_DoubanMovie_Crawler/4ab7acef95d1129f0250fd14de80ebb9f5d612ef/spark_movie_web/src/main/resources/static/layui/font/iconfont.eot -------------------------------------------------------------------------------- /spark_movie_web/src/main/resources/static/layui/font/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/Python_Spark_Analysis_DoubanMovie_Crawler/4ab7acef95d1129f0250fd14de80ebb9f5d612ef/spark_movie_web/src/main/resources/static/layui/font/iconfont.ttf -------------------------------------------------------------------------------- /spark_movie_web/src/main/resources/static/layui/font/iconfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/Python_Spark_Analysis_DoubanMovie_Crawler/4ab7acef95d1129f0250fd14de80ebb9f5d612ef/spark_movie_web/src/main/resources/static/layui/font/iconfont.woff -------------------------------------------------------------------------------- /spark_movie_web/src/main/resources/static/layui/font/iconfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/Python_Spark_Analysis_DoubanMovie_Crawler/4ab7acef95d1129f0250fd14de80ebb9f5d612ef/spark_movie_web/src/main/resources/static/layui/font/iconfont.woff2 -------------------------------------------------------------------------------- /spark_movie_web/src/main/resources/templates/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 首页 7 | 8 | 9 | 10 | 11 |
12 |
13 |
基于Spark的豆瓣电影数据分析系统
14 |
15 | 16 | 37 | 38 |
39 | 40 | 41 |
42 | 43 | 47 |
48 | 49 | -------------------------------------------------------------------------------- /spark_movie_web/src/main/resources/templates/login.html: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 用户登录 7 | 8 | 9 | 10 | 24 | 25 | -------------------------------------------------------------------------------- /spark_movie_web/src/main/resources/templates/register.html: -------------------------------------------------------------------------------- 1 | 2 | 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 | 41 | 42 |
用户注册
手机号
姓名
密码
确认密码

已有账号?   去登录
          
43 |
44 |
45 | 46 | -------------------------------------------------------------------------------- /关于系统.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangjianlin1985/Python_Spark_Analysis_DoubanMovie_Crawler/4ab7acef95d1129f0250fd14de80ebb9f5d612ef/关于系统.txt --------------------------------------------------------------------------------