基于Python的新闻聚合网站设计与实现
摘 要:本论文研究内容是基于Python的爬虫网络设计,利用Python的Scrapy的框架搭建爬虫网络,并设计一个全新的新闻网站,网站实现对新闻数据的分类,以及用户对新闻的分享、评论等,且本论题设计网页实现对新闻数据的可视化,让人们在面对海量新闻数据时不再花费更多的时间来获取有效的有价值的新闻信息。本系统利用网络爬虫我们可以做到对网络上的新闻网站进行定时定向的分析和采集,然后把采集到的数据进行去重,分类等操作后存入数据库,最后提供聚合的新闻聚合服务。考虑了如何应对网站的反爬虫策略,避免被网站封锁爬虫。具体实现新闻聚合网站技术,前端采用bootstrap,后端采用node koa2,数据库使用monogodb, 并可以通过浏览器或者android APP打开该网页。
关键词:Python;爬虫;聚合新闻;新闻爬虫;可视化
Design and implementation of the news aggregation website based on Python
Abstract: This paper research content is based on Python crawler network design, using the framework of Python Scrapy to build crawler network, and design a new news website, website to realize the classification of news data, and users to share news, comment, and this topic design web page to realize the visualization of news data, so that people in the face of massive news data no longer spend more time to obtain effective valuable news information.This system uses the network crawler. We can do regularly targeted analysis and collection of news websites on the network, and then replay the collected data, classify and other operations into the database, and finally provide personalized news subscription service.Consider how to deal with the website's anti-crawler strategy to avoid being blocked by the website crawler.Specifically, the news aggregation website technology adopts bootstrap at the front end, the back end uses node koa2, the database uses monogodb, and the web page can be opened through the browser or android APP.
Key words: Python; crawler; aggregated news; news crawler; visualization
目 录
摘 要 I
Abstract II
1 引言 1
1.1 选题背景及意义 1
1.2 研究开发现状分析 1
1.2.1 聚合新闻服务现状 1
1.2.2 网络爬虫研究现状 2
1.2.3 预期结果 2
1.3 论文结构简介 2
2 技术与原理 4
2.1 技术选型 4
2.1.1 Python语言介绍 4
2.1.2 Scrapy框架介绍 4
2.1.3 Django框架介绍 4
2.1.4 bootstrap 5
2.1.5 node koa2 5
2.1.6 MongoDB数据库介绍 6
2.2相关原理介绍 6
2.2.1 网络爬虫介绍 6
2.2.2 关键词提取技术 6
2.2.3 智能分类技术 7
3 系统需求分析 9
3.1 新闻聚合系统用例析取 9
3.2 新闻聚合系统用例规约 9
3.2.1 新闻聚合 9
3.2.2 新闻分类 10
4 新闻聚合网站的设计 12
4.1系统架构及原理 12
4.2 系统模块设计 13
4.2.1爬虫采集模块设计 13
4.2.2 爬虫去重模块设计 14
4.2.3 防反爬虫模块设计 15
4.2.4 爬虫存储模块设计 15
4.2.5 消息分类模块设计 16
4.2.6 消息聚合与展示模块设计 16
4.3 数据库设计 16
5 新闻聚合网站的实现 18
5.1 项目架构及运行 18
5.1.1 项目架构 18
5.1.2 运行 18
5.2 功能划分 18
5.2.1 新闻爬取模块 18
5.2.2 新闻列表加载模块 19
5.2.3 新闻内容加载模块 19
5.2.4 用户管理模块 19
5.2.5 服务器路由模块 19
5.2.6 数据库交互模块 19
5.2.7 新闻推荐模块 20
5.2.8 Android客户端模块 20
5.3 功能模块设计 20
5.3.1 新闻主页 20
5.3.2 新闻页面 22
5.3.3 用户注册 23
5.3.4 用户登录 25
5.3.5 用户修改信息 26
5.3.6 用户个人主页 27
5.3.7 新闻个性推荐 28
5.3.8 移动端新闻推送 29
6 系统部署 30
6.1 部署机器概述 30
6.2 配置环境 30
6.3 系统运行 30
7 结论 31
参考文献 32
致 谢 34
附录:代码架构及实现 35
1工程代码架构 35
2新闻爬取模块 35
1)相应主题对应新闻页面链接的爬取 35
2)新闻页面内容的爬取(主要是凤凰新闻网) 37
3)python连接mongodb数据库 40
3导航栏实现 41
4 新闻列表的加载 43
5 新闻内容页面的显示 52
6 用户注册 57
7 用户登录 61
8 新闻推荐模块 63