ABSTRACTI摘要本系统以一个大规模网络爬虫程序所获取的网络评论数据为基础,使用了词向量,用户画像等技术,构建了一个基于影评的推荐系统。主要的工作分为两部分,首先是研究分析了豆瓣电影网站是如何防御网络爬虫程序已经应对策略,其次根据网络爬虫程序获取的大量数据构建了一个推荐系统。关键词:大规模爬虫,用户画像,推荐系统目录目录摘要..............................................................I目录..............................................................II第一章绪论........................................................11.1背景与意义........................................................................................................11.2本系统的总体设计构思....................................................................................11.3本文的主要贡献与创新....................................................................................1第二章大规模数据获取...............................................22.1网络爬虫程序的原理........................................................................................22.2网络爬虫程序的设计方案................................................................................22.3豆瓣电影网站爬虫可行性分析........................................................................32.3.1豆瓣电影网站页面分析..........................................................................32.3.2豆瓣电影网站反爬虫策略分析..............................................................32.3.3豆瓣电影网站爬虫策略的设计..............................................................42.4网络爬虫性能优化............................................................................................42.5本章小结............................................................................................................5第三章影评分析推荐系统.............................................63.1推荐系统综述....................................................................................................63.1.1推荐系统的概念和定义..........................................................................63.1.2推荐系统的形式化定义..........................................................................73.2推荐系统用户模型设计....................................................................................73.2.1文本分析简介..........................................................................................73.2.2文本分析操作..........................................................................................83.3推荐系统推荐对象模型设计............................................................................83.3.1评分机制建模..........................................................................................83.3.2影片分类特征建模..................................................................................93.4推荐系统算法....................................................................................................93.4.1协同过滤算法..........................................................................................93.4.2基于项目的协同过滤算法......................................................................93.5推荐系统推荐关键算法部分..........................................................................103.5.1距离定义部分........................................................................................10目录III3.5.2近邻查找部分........................................................................................113.5.3评分向量的构建....................................................................................12第四章课程设计总结与展望..........................................134.1总结..................................................................................................................134.2后续工作展望..................................................................................................13致谢.............................................................14参考文献...........................................................151第一章绪论1.1背景与意义随着中国移动互联网的迅速发展,网民数量也在大规模增长,用户在社交与电商网站上的活跃程度日趋增加。随着用户群体的增加,用户在网络上留下的行为数据呈现指数级增长。面对庞大的用户群体以及如此大量的行为数据,如何从中快速、准确、有效的获取到有价值的数据,分析出用户的行为习惯以及偏好,在大规模内容的场景下,为用户提供精准的推荐服务,是现在大数据研究领域的一个热点和重点。网络爬虫是大规模数据获取的必要程序。由于网络上数据的高潜在商业价值,商业公司均会对其进行保密,即使能够直接获取的数据也会给出层层限制。在互联网发展的二十余年里,网络爬虫程序设计和网站反爬虫程序设计共同进步发展。如何有效的进行大规模网络数据爬取,同样是在工程领域的一个热点和重点。1.2本系统的总体设计构思首先通过设计一个高性能网络爬虫,对部分数据进行爬取。在数据集上进行清洗,选择一些高质量的活跃用户,设计算法,提取特征,进行回测,调整特征的选择。之后再在大规模数据集上进行运算。1.3本系统的主要贡献与创新本论文以大规模爬虫获取实时豆瓣电影数据为基础,实现了用户画像系统与推荐系统,根据历史数据得到的用户群体行为分析报告,并根据用户行为以及评论数据实现了智能化的电影推荐。2第二章大规模数据获取在大规模互联网社群站点中,由于网站运营策略以及一些涉及到潜在商业价值的考虑,运营公司通常会设置一些特殊的访问流量识别措施阻止外界使用程序大规模获取数据。对于网络爬虫程序设计者来说,必须要识别并且进行一定的特殊设计,才能高效的大规模并行获取数据。2.1网络爬虫程序的原理网络爬虫程序,也叫网络蜘蛛,在工程界通用简称“爬虫”,是一种可以自动实现模拟真实用户对网络资源访问并进行数据记录的程序。爬虫程序一般会选择记录目标站点的索引数据,以及所关注的主要内容的完整记录。2.2网络爬虫程序的设计方案网络爬虫的形式多种多样,从早期的C、C++设计,到现在主流的Python、Java设计都有其辉煌的历史。早期网络站点大部分内容、形式单一,静态网页居多,网络中富文本内容较少,计算机资源较少。使用C、C++编写的程序占用资源小,运行速度快,进行网络通讯的方式灵活,加之语言本身使用广泛,受到大量爬虫程序员的青睐。随着全球互联网产业、互联网基础设施的高速发展,谷歌、百度等搜索引擎的崛起,互联网上的资源爆炸性增长,基于各种目的,越来越多的程序员开始设计自己的网络爬虫程序。此时C、C++语言的一些缺点显现出来,集中在编码的不通用,设计繁琐,缺乏高度抽象的类库等。加之大规模数据存储平台的出现,C、C++爬虫程序日渐减少。爬虫程序主要的任务在于:访问网络资源,解析返回结果,对资源进行合理存储。由于高度抽象以及简洁的语法,Python以及Java等一下代的更加工程化的语言被大家所青睐。网络爬虫的开发极具灵活性,由于现代前端技术的成熟,爬虫程序所获取的内容可能随时变化,无法使用传统的软件工程方法进行设计开发,通常的做法是迭代式的对网络站点进行交替的探测、开发。网络爬虫的主要模块功能比较固定,遇到的异常情况繁杂,需要有完善的异常处理机制。在对大规模数据设计的爬虫中尤其重要。Python在网络爬虫类程序的开发效率上有着无可比拟的先天优势,在文本分析、异常处理方面同样有着大量的简洁的设计,使得开发网络爬虫程序的方便程度与灵活程度大大提升。加之有许多专门为Python语言3设计的网络访问库,数据库访问框架,浏览器模拟器,文本解析器的存在,使得这门语言有着一个完备的网络