一、项目需求
用正则表达式或者API接口的方法抓取这8个网站,经过数据清洗放到MySQL数据库,使用Web框架Flask、前端HTML、CSS、JavaScript等技术结合实现前台的显示,通过ECharts、Tableau等数据可视化工具绘图。
二、技术选型
1、爬虫
采用Python的BeautifulSoup库,通过解析文档来抓取想要的数据。数据处理流程是先从网页爬取数据保存到excel文件中然后通过sqlalchemy将excel文件保存到数据库。
2、可视化
前端Layui+Echarts图表,后端Python+Flask作Web框架
三、爬虫
由于8个网站结构和数据交互方式不同,需要采用的爬虫方法也都不一样。
比较简单的像韩国电影售票网站、香港电影评分网站都可以通过解析榜单中详情页URL,然后通过URL地址获取详情页源代码,最后通过bs4解析数据从而爬取想要的内容。
而像内地电影票房总排行榜有一定的反爬机制,当ip访问量达到一定的程度时,服务器后台会检测是否登录,当未登录时获取到的页面源码会是登录页面源码,解决办法就是通过设置请求头Cookie,让服务器知道我们已经登录
最后便能够正确抓取数据
四、可视化
可视化大致可以分为四个部分:首页、词云、网站详情、统计
1、首页
地图展示世界影视发达国家的基本信息
2、词云
对世界杰出影视作品和豆瓣影评作词云展示
3、网站详情
分页展示8个网站的数据
数据库数据
4、统计数据
对各个网站爬取的数据作图表统计展示
四、总结
该系统实现了对目标网站数据的爬取,并进行数据可视化。主要难点在于针对不同的网站实施不同的爬虫策略。