基于爬虫技术的数据采集系统实现

基于爬虫技术的数据采集系统实现
基于爬虫技术的数据采集系统实现

基于爬虫技术的数据采集系统实现

摘要:顾名思义像一个蜘蛛一样,在互联“网”上那么你需要把所有的网页都看一遍,那么我们怎么办你得从某个角落开始慢慢的爬取。随着互联网的兴起,它成为了一个拥有成千上万信息的载体。如何高效的获取这成千上万的信息,最先出现的是搜索引擎,它作为一个人们日常查找互联网信息的工具的指南针和快速入口。随着信息的高速发展,它的出现也还是有一定的局限性,比如返回了很多虚假和用户不相关的信息出来了。为了解决这个问题,定向的获取网页信息技术,即爬虫技术就产生了,他主要解决了3个大问题,对抓取的事物进行了定义和描述,对信息网页等进行了过滤,还有就是对地址的搜索策略,随着发展人们又发明了分布式爬虫技术,更加高效的获取数据。

关键词:爬虫;分布式爬虫;搜索引擎

Abstract:As the name suggests, like a spider, you need to see all the web pages on the Internet.

So what do you have to start slowly from a corner, with the rise of the Internet, it has become a carrier of thousands of information, how to efficiently get the thousands of information, the first is the search engine, as a tool for people to find the Internet information tools and fast. Speed entrance, with the rapid development of information, it still has some limitations, such as the return of a lot of false and unrelated information out of the user. In order to solve this problem, the directional access to web information technology, that is, the crawler technology is produced, he mainly solved 3 major problems, to grab things.

A definition and description, filtering of information pages, and a search strategy for the address, with the development of a distributed crawler technology, and more efficient access to data

Key words:Crawler; Distributed crawler; Search engine.

目录

摘要:.................................................................. I Abstract .................................................................. I 目录................................................................... II 1 绪论.. (1)

1.1 研究背景以及目的 (1)

1.2 常见爬虫方法 (1)

1.3 爬虫的背景简介 (2)

1.3.1 爬虫需要的基础知识 (2)

1.3.2 python爬虫的架构介绍 (2)

1.3.3 爬虫的工作流 (3)

2环境 (4)

2.1 开发集成软件 (4)

2.2 开发环境所需要的设备支持 (4)

2.3 操作系统环境配置 (4)

3 需求分析 (5)

3.1 可行性研究分析 (5)

3.2 设计理论以及设计构造图 (5)

3.3 数据字典设计 (6)

4.系统实现 (7)

4.1.对数据抓取过程实现 (7)

4.2 部分代码功能模块 (8)

4.3 数据存储操作代码 (9)

4.4 后台部分数据截图 (9)

5.结论 (11)

参考文献.................................................. 错误!未定义书签。附录.. (12)

致谢.................................................... 错误!未定义书签。

1 绪论

1.1 研究背景以及目的

你把你自己想成一只蜘蛛,现在你被放到了互联‘网’上面,那么,如果你需要把所有的网浏览一遍。这个时候你怎么办呢,完全没问题呀,你就随便从一个网的角落开始爬呀爬,就打个比方来说吧你现在在网易云新闻的首页,这个叫initial pages,我们可以用$作为它的标识把。在网易新闻的首页,你可以观察到很多很多的不同的引向的很多不同的链接。可能你能非常开开心的“世界经济新闻”那个页面上。这样你就已经爬完了俩页面!我们先不论不用管爬下来的页面我们怎么来将它们进行怎么的处理,你就想象你把这个界面完完整整抄成了个一个html。

突然有个瞬间你会发现到,[1]在XX新闻这个页面上,有一个链接链回“首页”。你自己作为一只非常聪明的蜘蛛,你肯定在你的心里面想我回去干嘛啊?因为你在之前已经看过了啊。所以,你会用的强大的记忆力去记住所有内容。这样,每次看到一个新链接,你就先查查你脑子里是不是已经去过这个页面地址。如果去过你就转弯不去啦。

具体来说,爬虫的主要目的如下:

(1)定向的采集某些特别数据

(2)可以根据自身的一些需要的获取某些数据

(3)对抓取的目标进行自我描述

(4)对网页数据进行需求性过滤

(5)对地址的搜索策略

1.2 常见爬虫方法

在爬取大量数据的时候,假如我们现在的话100多台机器不休息的地运行了一个月才将我们需要的数据爬取完成,那么如果你只用一台机子的话,你就得运行100个月了...那将是一个非常头疼的事情。

那么,我们这样想你现在如果真的有100台机器可以用,怎样用法python去实现一个分布式的爬取算法呢?所以我们把99的能力非常弱机的作为一个SLA VE,[2]另外一台较大的机器叫作主机,那么我们能把这个queue放到这台master机器上,所有其它的slave都可以通过网络跟master联通,每当一个slave完成下载一个网页,就向master 请求一个新的网页来抓取。而每次slave新抓到一个网页,就把这个网页上所有的链接送到master的queue里去。而被访问过的url放到运行在master上的Redis里,这样保证每一个步骤都是内存。

考虑如何用python实现:

在各台slave上装好scrapy,那么各台机子就变成了一台有抓取能力的slave,在master上装好Redis和rq用作分布式队列。

1.3 爬虫的背景简介

本章节主要是简单介绍爬虫的所需要得背景信息,以及相关的了解的重要背景信息。

1.3.1 爬虫需要的基础知识

(1)基本的HTML语言知识

(2)理解网站的发包和收包概念(pos get)

(3)基础的JS知识用于理解动态网页

(4)正则表达式

(5)XPATH 高效的分析语言(可以不用正则)

(6)Beautifulsoup美丽汤模块解析网页神器,可以编写各种小巧精干的爬虫脚本[3] 1.3.2 python爬虫的架构介绍

Python爬虫一般来讲的架构主要分为五个部分组成,它们分别是调度器、URL管理器、网页下载器、网页解析器、应用程序。

调度器:主要负责调度的协调工作,作为一个智慧的大脑

URL管理器:循环抓取URL。

网页下载器:通过传入一个URL地址来下载网页,将网页转换成一个字符串。

网页解析器:将一个网页字符串进行解析,可以按照我们的要求来提取出我们有用的信。

应用程序:就是相当于自己设计的一个程序。

1.3.3 爬虫的工作流

爬虫工作流图大致如图3-1

图3-1 爬虫的工作流

相关主题
相关文档
最新文档