大数据环境下基于python的网路爬虫技术
优采云 发布时间: 2020-05-26 08:0344 | 电子制做 2017 年 5月软件开发序言大数据背景下,各行各业都须要数据支持,如何在广袤的数据中获取自己感兴趣的数据,在数据搜索方面,现在的搜索引擎似乎比刚开始有了很大的进步,但对于一些特殊数据搜索或复杂搜索,还不能挺好的完成,利用搜索引擎的数据不能满足需求,网络安全,产品督查,都须要数据支持,而网路上没有现成的数据,需要自己自动去搜索、分析、提炼,格式化为满足需求的数据,而借助网路爬虫能手动完成数据获取,汇总的工作,大大提高了工作效率。1. 利用 python 实现网路爬虫相关技术 ■ 1.1 什么是网络爬虫网络爬虫(又被称为网页蜘蛛,网络机器人),是一种根据一定的规则,自动地抓取万维网信息的程序或则脚本。它们被广泛用于互联网搜索引擎或其他类似网站,以获取或更新那些网站的内容和检索方法。它们可以手动采集所有其才能访问到的页面内容,以供搜索引擎做进一步处理(分检整理下载的页面),而促使用户能更快的检索到她们须要的信息。 ■ 1.2 python 编写网路爬虫的优点(1)语言简练,简单易学,使用上去得心应手,编写一个良好的 Python 程序就觉得象是在用英文写文章一样,尽管这个英文的要求十分严格! Python 的这些伪代码本质是它最大的优点之一。
它让你才能专注于解决问题而不是去搞明白语言本身。(2)使用便捷,不需要笨重的 IDE,Python 只须要一个 sublime text 或者是一个文本编辑器,就可以进行大部分中小型应用的开发了。(3)功能强悍的爬虫框架 ScraPy,Scrapy 是一个为了爬取网站数据,提取结构性数据而编撰的应用框架。可以应用在包括数据挖掘,信息处理或储存历史数据等一系列的程序中。(4)强大的网路支持库以及 html 解析器,利用网路支持库 requests,编写较少的代码,就可以下载网页。利用网页解析库 BeautifulSoup,可以便捷的解析网页各个标签,再结合正则表达式,方便的抓取网页中的内容。(5)十分擅长做文本处理字符串处理:python 包含了常用的文本处理函数,支持正则表达式,可以便捷的处理文本内容。 ■ 1.3 爬虫的工作原理网络爬虫是一个手动获取网页的程序,它为搜索引擎从互联网上下载网页,是搜索引擎的重要组成。从功能上来讲,爬虫通常分为数据采集,处理,储存三个部份。爬虫的工作原理,爬虫通常从一个或则多个初始 URL 开始,下载网页内容,然后通过搜索或是内容匹配手段(比如正则表达式),获取网页中感兴趣的内容,同时不断从当前页面提取新的 URL,根据网页抓取策略,按一定的次序倒入待抓取 URL 队列中,整个过程循环执行,一直到满足系统相应的停止条件,然后对那些被抓取的数据进行清洗,整理,并构建索引,存入数据库或文件中,最后按照查询须要,从数据库或文件中提取相应的数据,以文本或图表的形式显示下来。
■ 1.4 网页抓取策略在网路爬虫系统中,待抓取 URL 队列是很重要的一部分,待抓取 URL 队列中的 URL 以什么样的次序排列也是一个很重要的问题,因为这涉及到先抓取那种页面大数据网络爬虫原理,后抓取那个页面。而决定那些 URL 排列次序的方式,叫做抓取策略。网页的抓取策略可以分为深度优先、广度优先和最佳优先三种:(1)广度优先搜索策略,其主要思想是,由根节点开始,首先遍历当前层次的搜索,然后才进行下一层的搜索,依次类推逐层的搜索。这种策略多用在主题爬虫上,因为越是与初始 URL 距离逾的网页,其具有的主题相关性越大。(2)深度优先搜索策略,这种策略的主要思想是,从根节点出发找出叶子节点,以此类推。在一个网页中,选择一个超链接,被链接的网页将执行深度优先搜索,形成单独的一条搜索链,当没有其他超链接时,搜索结束。(3)最佳优先搜索策略,该策略通过估算 URL 描述文本与目标网页的相似度,或者与主题的相关性,根据所设定的阀值选出有效 URL 进行抓取。 ■ 1.5 网络爬虫模块按照网路爬虫的工作原理,设计了一个通用的爬虫框架结构,其*敏*感*词*如图 1 所示。大数据环境下基于 python 的网路爬虫技术作者/谢克武,重庆工商大学派斯学院软件工程学院摘要:随着互联网的发展壮大,网络数据呈爆炸式下降,传统搜索引擎早已不能满足人们对所需求数据的获取的需求,作为搜索引擎的抓取数据的重要组成部份,网络爬虫的作用非常重要,本文首先介绍了在大数据环境下网络爬虫的重要性,接着介绍了网络爬虫的概念,工作原理,工作流程,网页爬行策略,python在编撰爬虫领域的优势,最后设计了一个通用网路爬虫的框架,介绍了框架中模块的互相协作完成数据抓取的过程。
关键词:网络爬虫;python;数据采集;大数据 | 45软件开发图 1网路爬虫的基本工作流程如下:(1)首先选定一部分悉心选购的*敏*感*词* URL;(2)将这种 URL 放入待抓取 URL 队列;(3)从待抓取 URL 队列中取出待抓取在 URL,将URL 对应的网页下载出来,将下载出来的网页传给数据解析模块,再将这种 URL 放进已抓取 URL 队列。(4)分析下载模块传过来的网页数据,通过正则抒发,提取出感兴趣的数据,将数据传送给数据清洗模块,然后再解析其中的其他 URL,并且将 URL 传给 URL 调度模块。(5)URL 调度模块接收到数据解析模块传递过来的URL 数 据, 首 先 将 这 些 URL 数 据 和 已 抓 取 URL 队 列 比较,如果是早已抓取的 URL,就遗弃掉,如果是未抓取的URL,就按照系统的搜索策略,将 URL 放入待抓取 URL 队列。(6)整个系统在 3-5 步中循环,直到待抓取 URL 队列里所有的 URL 已经完全抓取,或者系统主动停止爬取,循环结束。(7)整理清洗数据,将数据以规范的格式存入数据库。(8)根据使用者偏好,将爬取结果从数据库中读出,以文字,图形的方法展示给使用者。
2. 系统模块整个系统主要有六个模块,爬虫主控模块,网页下载模块,网页解析模块,URL 调度模块,数据清洗模块,数据显示模块。这几个模块之间互相协作,共同完成网路数据抓取的功能。(1)主控模块,主要是完成一些初始化工作,生成*敏*感*词* URL, 并将这种 URL 放入待爬取 URL 队列,启动网页下载器下载网页,然后解析网页,提取须要的数据和URL地址,进入工作循环,控制各个模块工作流程,协调各个模块之间的工作(2)网页下载模块,主要功能就是下载网页,但其中有几种情况,对于可以匿名访问的网页,可以直接下载,对于须要身分验证的,就须要模拟用户登录后再进行下载,对于须要数字签名或数字证书就能访问的网站,就须要获取相应证书,加载到程序中,通过验证以后才会下载网页。网络上数据丰富,对于不同的数据,需要不同的下载形式。数据下载完成后大数据网络爬虫原理,将下载的网页数据传递给网页解析模块,将URL 地址装入已爬取 URL 队列。(3)网页解析模块,它的主要功能是从网页中提取满足要求的信息传递给数据清洗模块,提取 URL 地址传递给URL 调度模块,另外,它还通过正则表达式匹配的方法或直接搜索的方法,来提取满足特定要求的数据,将这种数据传递给数据清洗模块。
(4)URL 调度模块,接收网页解析模块传递来的 URL地址,然后将这种 URL 地址和已爬取 URL 队列中的 URL 地址比较,如果 URL 存在于已爬取 URL 队列中,就遗弃这种URL 地址,如果不存在于已爬取 URL 队列中,就按系统采取的网页抓取策略,将 URL 放入待爬取 URL 地址相应的位置。(5)数据清洗模块,接收网页解析模块传送来的数据,网页解析模块提取的数据,一般是比较零乱或款式不规范的数据,这就须要对那些数据进行清洗,整理,将那些数据整理为满足一定格式的数据,然后将这种数据存入数据库中。(6)数据显示模块,根据用户需求,统计数据库中的数据,将统计结果以文本或则图文的形式显示下来,也可以将统计结果存入不同的格式的文件将中(如 word 文档,pdf 文档,或者 excel 文档),永久保存。3. 结束语如今早已步入大数据时代,社会各行各业都对数据有需求,对于一些现成的数据,可以通过网路免费获取或则订购,对于一下非现成的数据,就要求编撰特定的网路爬虫,自己在网路起来搜索,分析,转换为自己须要的数据,网络爬虫就满足了这个需求,而 python 简单易学,拥有现成的爬虫框架,强大的网路支持库,文本处理库,可以快速的实现满足特定功能的网路爬虫。
参考文献* [1]于成龙, 于洪波. 网络爬虫技术研究[J]. 东莞理工学院学报, 2011, 18(3):25-29.* [2]李俊丽. 基于Linux的python多线程爬虫程序设计[J]. 计算机与数字工程 , 2015, 43(5):861-863.* [3]周中华, 张惠然, 谢江. 基于Python的新浪微博数据爬虫[J]. 计算机应用 , 2014, 34(11):3131-3134.