登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 毕业论文 > 计算机类 > 计算机科学与技术 > 正文

基于Scrapy框架的爬虫以及数据可视化毕业论文

 2020-06-07 21:24:12  

摘 要

处在信息爆炸的现代,用户在海量的信息中找到需要的部分越来越难。即便是有诸如百度、Google这种通用型搜索引擎,也无法满足人们对搜索质量越来越高的需求与多样化的需求,于是推荐引擎应运而生。尽管推荐系统在技术上,与搜索引擎有些相似,但是还要解决的重要问题之一是如何有效设计一个聚焦爬虫,还有很多独特的技术和新问题需要解决。

本文中基于Scrapy的爬虫,主要有爬取、数据处理、相似度计算三个模块。爬取部分通过实现自己的调度中间件与存储中间件并引入Redis后端来实现分布式爬取。同时基于几个使用模板产生的动态网页,提出了一个基于URL规则的分布式爬取(任务调度)方法。同时实现了Simrank 算法来计算不同节点的相似度,来进行一些可视化的分析。

论文将首先介绍课题背景以及课题的意义;其次将介绍设计与实现基于Scrapy的分布式爬虫,即主要采用Python语言,PyCharm开发,使用Redis数据库;然后简单介绍了Simrank 算法的推到过程以及具体迭代方法。最后将介绍该爬虫的实现。

关键字: 爬虫 分布式 Redis Python Simrank

Distributed Reptiles and Data Visualization Based on Scrapy

Abstract

With the continuous expansion of information, in the massive information to find their own needs more and more difficult parts. Even if there are such as Baidu, Google this general purpose search engine, but also can not meet the people's search for more and more high demand for quality and demand, so recommend the engine came into being. Although the recommendation engine and the search engine are somewhat similar in technology, but still have a lot of their own unique technology, and some new problems to be solved, focusing on reptiles is one of the key needs to be addressed.

In this paper, based on the Scrapy crawler, there are crawling, data processing, similarity calculation of three modules. The crawl part implements distributed crawling by implementing its own scheduling middleware and storing middleware and introducing Redis backends. Based on the dynamic web pages generated by using several templates, a distributed crawling method based on URL rules is proposed. SimRank algorithm is also used to calculate the similarity of different nodes to carry out some visual analysis.

The paper will introduce the background and the meaning of the topic first. Secondly, it will introduce the design and implementation of the distributed crawler based on Scrapy, which is mainly used in the Python language, eclipse development, the use of Redis database; and then briefly introduced the Simrank algorithm to push the process and the specific iteration method. Finally, the implementation of the crawler will be introduced.

Key Words: crawler; distribution; Redis; Python; Simrank

目录

摘 要 I

Abstract II

第一章 绪论 1

1.1问题的提出 1

1.2 研究背景 1

1.3 研究内容 2

第二章 研究现状 3

2.1爬虫概述 3

2.2爬虫分类 4

2.2.1 通用型网络爬虫 4

2.2.2 聚焦网络爬虫 4

2.2.3增量式网络爬虫 5

2.2.4 Deep Web 爬虫 6

2.3爬取策略 6

2.3.1广度优先搜索 7

2.3.2最佳优先搜索 7

2.3.3深度优先搜索 7

2.4抓取技术 8

2.4.1爬虫语言 8

2.4.2网页爬取策略 8

第三章 相关技术概述 10

3.1聚焦爬虫 10

3.2Scarpy 10

3.2.1Scrapy Engine 11

3.3.2调度器(Scheduler) 11

3.3.3下载器(Downloader) 11

3.3.4Spiders 11

3.3.5Item Pipeline 12

3.3.6下载器中间件(Downloader Middleware) 13

3.3.7Spider中间件(Spider middlewares) 13

3.3.8数据流(Data flow) 13

3.3 推荐算法 14

3.3.1协同过滤 14

3.3.2 Simrank 16

3.3.3 Simrank 17

第四章 系统设计 20

4.1爬虫 20

4.2调度中间件 20

4.3存储中间件 21

第五章 系统详细设计 22

5.1URL规则 22

5.2调度中间件 23

5.3存储中间件 23

5.4数据提取模块 28

第六章 结语 32

6.1总结 32

6.2存在问题及改进 32

参考文献 33

致谢 35

第一章 绪论

1.1问题的提出

在信息爆炸的当代,在获取信息的途径上人们越来越离不开搜索引擎。通过使用诸如百度、Bing、Google这样的通用型搜索引擎,往往可以迅速找到自己想要的信息。尽管通用型搜索引擎极大的提高了人们获取信息的效率,得到了大范围的普及,但是对于某一些问题,尤其是某一主题或是某一个垂直领域内的问题,就显得无能为力了。

1.2 研究背景

周立柱总结了通用型搜索引擎的局限性:

  1. 不同的领域包含大量的用户,不介意通用搜索引擎返回的结果,因为具有不同背景的用户往往具有不同的页面搜索目标和需求。
  2. 通用型搜索引擎的目标是尽可能大的网络覆盖率,搜索引擎有限的服务器资源与网络上近乎无限的内容之间的矛盾将进一步加深。
  3. 通过多种形式的多媒体数据(如丰富的数据和网络技术,图像,数据库,音频/视频等)的开发,将以不同的方式显示,通用型搜索引擎经常对这类数据无能为力,不能很好地检索和收录这些页面。
  4. 通用型搜索引擎大多提供基于关键字的检索,难以支持根据语义信息提出的查询。

1.3 研究内容

推荐引擎则可以较好的解决上述几个问题。推荐引擎通过聚焦于一个特定的领域或者一个特定的主题,可以提供更加精准的信息,从而满足使用者的在某一领域下复杂的搜索需求;另外它更加专注,因为爬取信息的范围比较小,所以其检索的结果也将更加具有针对性,并且因为只关注于某一个领域,所以可以用很少的服务器资源覆盖这一主题下大部分的信息,提高用户获得信息的效率与质量。正式因为具有这些优点,推荐引擎导向的产品也越来越多,比如一点资讯、今日头条、百分点等。

对于推荐引擎而言,最重要的事情是,如何获得用户数据。如果数据源不受自己的控制,那么一个简单的获取数据的办法就是使用爬虫爬取。随着推荐引擎的日益流行,爬虫作为其中简单易行的获取数据的,也将会越来越重要。可以说如果较好的解决了如何有效的爬取数据,那么一个推荐引擎也就成功了一半。爬虫大致上需要解决两个问题:一个是选择策略,哪个页面会有有价值的数据需要去抓取,那些页面价值可能会高,需要优先抓取;一个是遍历策略:如何确定那些页面是需要抓取的,在整个网络空间中爬虫应该如何爬行。本文将着重解决第一个问题。

第二章 研究现状

本文中提及的爬虫高效爬取方式,亦即待爬取页面的选择策略,应该抓取哪些页面,哪些页面应该优先抓取。在业界多年的研究中,对于选择策略,很多人都提出了自己的策略制定方式。下面介绍一下这些方法。

2.1爬虫概述

互联网资源卷帙浩繁,而我们又经常需要获取结构化的数据以供检索分析使用,爬虫的概念便应运而生。Web爬虫(有时称为蜘蛛)是一种可以系统地浏览万维网,通常用于Web索引(Web spidering),的程序。网页搜索引擎和其他一些网站使用网页爬虫或蜘蛛软件来更新他们的网页内容或其他网站网页内容的索引。 网页抓取工具可以保存他们访问的所有页面,以便后期由搜索引擎对数据建立索引,使得用户能够更有效地搜索。一个网页爬虫从一个被称作“种子”的网址列表开始。当检索器访问这些URL时,它会标识页面中的所有超链接,并将其添加到要访问的URL列表中,称为爬网边界。根据一组策略递交来自边界的URL。如果爬行器正在执行归档网站,那么它将复制并保存信息。档案通常以这样一种方式存储,可以像在实时网络上一样被查看,读取和浏览,但被保存为“快照”。

您需要先支付 80元 才能查看全部内容!立即支付

企业微信

Copyright © 2010-2022 毕业论文网 站点地图