物流网站建设策划书的总结免费海报素材网站大全
2026/1/11 14:53:47 网站建设 项目流程
物流网站建设策划书的总结,免费海报素材网站大全,文化建设新闻,公司页面设计图片文章目录 0 简介1 课题背景2 效果实现3 爬虫及实现4 Flask框架5 Ajax技术6 Echarts7 最后 0 简介 今天学长向大家介绍一个机器视觉的毕设项目 #x1f6a9;基于大数据的电影数据分析与可视化系统 项目运行效果(视频)#xff1a; 毕业设计 大数据电影评论情感分析#x1f…文章目录0 简介1 课题背景2 效果实现3 爬虫及实现4 Flask框架5 Ajax技术6 Echarts7 最后0 简介今天学长向大家介绍一个机器视觉的毕设项目基于大数据的电影数据分析与可视化系统项目运行效果(视频)毕业设计 大数据电影评论情感分析 项目分享:见文末!1 课题背景研究中国用户电影数据,有助于窥探中国电影市场发展背后的规律,理解其来龙去脉,获知未来走向。如今互联网上中国用户的电影数据集缺失,缺少如MovieLens、Kaggle等独立机构完成长期收集电影数据工作,研究人员只能自行收集或下载来自国外的公共电影数据集,不具有本地属性。本项目爬取豆瓣网相关电影信息建立数据库。并根据此数据库进行了可视化分析,从中提取出大量数据背后信息,多维度分析了电影在公映时间、观众分布、类别占比、各国市场情况的关系,从评论词云、文本情感角度挖掘单部电影呈现的规律。2 效果实现评论情感得分随时间变化情况如下热门评论列表情况如下3 爬虫及实现简介网络爬虫是一种按照一定的规则自动地抓取万维网信息的程序或者脚本。爬虫对某一站点访问如果可以访问就下载其中的网页内容并且通过爬虫解析模块解析得到的网页链接把这些链接作为之后的抓取目标并且在整个过程中完全不依赖用户自动运行。若不能访问则根据爬虫预先设定的策略进行下一个 URL的访问。在整个过程中爬虫会自动进行异步处理数据请求返回网页的抓取数据。在整个的爬虫运行之前用户都可以自定义的添加代理伪 装 请求头以便更好地获取网页数据。爬虫流程图如下部分代码实现importreimportrequestsimportjsonimporttimefromopenpyxlimportload_workbook,WorkbookfromrequestsimportRequestExceptiondefget_detail_page(html):try:headers{User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36}cookies{}responserequests.get(urlhtml,headersheaders,cookiescookies)response.encodingutf-8ifresponse.status_code200:returnresponse.textreturnNoneexceptRequestException:print(获取详情页错误)time.sleep(3)returnget_detail_page(html)defparse_index_page(html):htmlget_detail_page(html)htmlhtml[12:-1]datajson.loads(html)id_list[]ifdata:foritemindata:id_list.append(item[url])returnid_listdefparse_detail_page(data):htmlget_detail_page(data)info[]# 获取电影名称name_patternre.compile(span propertyv:itemreviewed(.*?)/span)namere.findall(name_pattern,html)info.append(name[0])# 获取评分score_patternre.compile(rating_num propertyv:average(.*?)/strong)scorere.findall(score_pattern,html)info.append(score[0])# 获取导演director_patternre.compile(relv:directedBy(.*?)/a)directorre.findall(director_pattern,html)print(director)info.append(str(director[0]))# 获取演员actor_patternre.compile(relv:starring(.*?)/a)actorre.findall(actor_pattern,html)info.append(str(actor[0]))# 获取年份year_patternre.compile(span classyear\((.*?)\)/span)yearre.findall(year_pattern,html)info.append(year[0])# 获取类型type_patternre.compile(propertyv:genre(.*?)/span)typere.findall(type_pattern,html)info.append(type[0].split( /)[0])# 获取时长try:time_patternre.compile(propertyv:runtime content(.*?))timere.findall(time_pattern,html)info.append(time[0])except:info.append(1)# 获取语言language_patternre.compile(pl语言:/span(.*?)br/)languagere.findall(language_pattern,html)info.append(language[0].split( /)[0])# 获取评价人数comment_patternre.compile(propertyv:votes(.*?)/span)commentre.findall(comment_pattern,html)info.append(comment[0])# 获取地区area_patternre.compile( classpl制片国家/地区:/span(.*?)br/)areare.findall(area_pattern,html)info.append(area[0].split( /)[0])returninfo htmlhttps://movie.douban.com/j/search_subjects?typemovietag%E5%86%B7%E9%97%A8%E4%BD%B3%E7%89%87sortrankpage_limit20page_startwcWorkbook()sheetwc.active sheet.titleNewwswc[New]sheet[A1]namesheet[B1]scoresheet[C1]directorsheet[D1]actorsheet[E1]yearsheet[F1]typesheet[G1]timesheet[H1]languagesheet[I1]commentsheet[J1]areawswc[wc.sheetnames[0]]wc.save(豆瓣电影.xlsx)ti1foriinrange(20,50):print(i)html1htmlstr(i*20)uparse_index_page(html1)print(u)fortinu:time.sleep(0.5)bparse_detail_page(t)print(b)ws.append(b)wc.save(豆瓣电影.xlsx)ti14 Flask框架简介Flask是一个基于Werkzeug和Jinja2的轻量级Web应用程序框架。与其他同类型框架相比Flask的灵活性、轻便性和安全性更高而且容易上手它可以与MVC模式很好地结合进行开发。Flask也有强大的定制性开发者可以依据实际需要增加相应的功能在实现丰富的功能和扩展的同时能够保证核心功能的简单。Flask丰富的插件库能够让用户实现网站定制的个性化从而开发出功能强大的网站。Flask项目结构图部分相关代码fromflaskimportFlask,render_template,jsonifyimportrequestsfrombs4importBeautifulSoupfromsnownlpimportSnowNLPimportjiebaimportnumpyasnp appFlask(__name__)app.config.from_object(config)# 中文停用词STOPWORDSset(map(lambdax:x.strip(),open(r./stopwords.txt,encodingutf8).readlines()))headers{accept:text/html,application/xhtmlxml,application/xml;q0.9,image/webp,image/apng,*/*;q0.8,application/signed-exchange;vb3;q0.9,accept-language:en-US,en;q0.9,zh-CN;q0.8,zh-TW;q0.7,zh;q0.6,cookie:ll108296; bidieDyF9S_Pvo; __utma30149280.1219785301.1576592769.1576592769.1576592769.1; __utmc30149280; __utmz30149280.1576592769.1.1.utmcsr(direct)|utmccn(direct)|utmcmd(none); _vwo_uuid_v2DF618B52A6E9245858190AA370A98D7E4|0b4d39fcf413bf2c3e364ddad81e6a76; cty; dbcl240219042:K/CjqllYI3Y; ckFsDX; push_noty_num0; push_doumail_num0; douban-fav-remind1; ap_v0,6.0,host:search.douban.com,referer:https://movie.douban.com/,sec-fetch-mode:navigate,sec-fetch-site:same-site,sec-fetch-user:?1,upgrade-insecure-requests:1,user-agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36 Edg/79.0.309.56}login_nameNone# --------------------- html render ---------------------app.route(/)defindex():returnrender_template(index.html)app.route(/search)defsearch():returnrender_template(search.html)app.route(/search/movie_name)defsearch2(movie_name):returnrender_template(search.html)app.route(/hot_movie)defhot_movie():returnrender_template(hot_movie.html)app.route(/movie_category)defmovie_category():returnrender_template(movie_category.html)# ------------------ ajax restful api -------------------app.route(/check_login)defcheck_login():判断用户是否登录returnjsonify({username:login_name,login:login_nameisnotNone})app.route(/register/name/pasw)defregister(name,pasw):connsqlite3.connect(user_info.db)cursorconn.cursor()check_sqlSELECT * FROM sqlite_master where typetable and nameusercursor.execute(check_sql)resultscursor.fetchall()# 数据库表不存在iflen(results)0:# 创建数据库表sql CREATE TABLE user( name CHAR(256), pasw CHAR(256) ); cursor.execute(sql)conn.commit()print(创建数据库表成功)sqlINSERT INTO user (name, pasw) VALUES (?,?);cursor.executemany(sql,[(name,pasw)])conn.commit()returnjsonify({info:用户注册成功,status:ok})app.route(/login/name/pasw)deflogin(name,pasw):globallogin_name connsqlite3.connect(user_info.db)cursorconn.cursor()check_sqlSELECT * FROM sqlite_master where typetable and nameusercursor.execute(check_sql)resultscursor.fetchall()# 数据库表不存在iflen(results)0:# 创建数据库表sql CREATE TABLE user( name CHAR(256), pasw CHAR(256) ); cursor.execute(sql)conn.commit()print(创建数据库表成功)sqlselect * from user where name{} and pasw{}.format(name,pasw)cursor.execute(sql)resultscursor.fetchall()login_namenameiflen(results)0:returnjsonify({info:name用户登录成功,status:ok})else:returnjsonify({info:当前用户不存在,status:error})5 Ajax技术Ajax 是一种独立于 Web 服务器软件的浏览器技术。Ajax使用 JavaScript 向服务器提出请求并处理响应而不阻塞的用户核心对象XMLHttpRequest。通过这个对象您的 JavaScript 可在不重载页面的情况与 Web 服务器交换数据即在不需要刷新页面的情况下就可以产生局部刷新的效果。前端将需要的参数转化为JSON字符串再通过get/post方式向服务器发送一个请并将参数直接传递给后台后台对前端请求做出反应接收数据将数据作为条件查询但会j’son字符串格式的查询结果集给前端前端接收到后台返回的数据进行条件判断并作出相应的页面展示。$.ajax({url:http://127.0.0.1:5000/updatePass,type:POST,data:JSON.stringify(data.field),contentType:application/json; charsetutf-8,dataType:json,success:function(res){if(res.code200){layer.msg(res.msg,{icon:1});}else{layer.msg(res.msg,{icon:2});}}})6 EchartsEChartsEnterprise Charts是百度开源的数据可视化工具底层依赖轻量级Canvas库ZRender。兼容了几乎全部常用浏览器的特点使它可广泛用于PC客户端和手机客户端。ECharts能辅助开发者整合用户数据创新性的完成个性化设置可视化图表。支持折线图区域图、柱状图条状图、散点图气泡图、K线图、饼图环形图等通过导入 js 库在 Java Web 项目上运行。7 最后 项目分享:见文末!

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询