基于Python的网络爬虫程序设计

发表时间:2020/7/3   来源:《科学与技术》2019年22期   作者: 史宏伟、侯沛英
[导读] 网络信息量的迅猛增长,从海量的信息中准确的搜索到用户需要的信息提出了极大的挑战

         摘要:网络信息量的迅猛增长,从海量的信息中准确的搜索到用户需要的信息提出了极大的挑战。网络爬虫具有能够自动提取网页信息的能力。对现在流行的网络爬虫框架进行分析和选择,在现有框架的基础上设计了一种适合资源库建设的爬虫系统,利用爬虫的自动化特性完成教学资源库的内容获取及入库工作。同时,选用Scrapyredis对爬虫进行拓展,利用Redis实现对目标网站资源的分布式爬取,提高获取资源的速度。
         关键词:Python的网络爬虫程序;设计;应用  
         一、概述
         1、Python 语言。Python 语言语法简单清晰、功能强大,容易理解。可 以 在 Windows、Linux 等 操 作 系 统 上 运 行;Python 是一种面向对象的语言,具有效率高、可简单地实现面向对象的编程等优点。Python 是一种脚本语言,语法简洁且支持动态输入,使得 Python在很多操作系统平台上都是一个比较理想的脚本语言,尤其适用于快速的应用程序开发。
          2、网络爬虫。网络爬虫是一种按照一定的规则,自动提取 Web 网页的应用程序或者脚本,它是在搜索引擎上完成数据抓取的关键一步,可以在Internet 上下载网站页面。爬虫是为了将 Internet 上的网页保存到本地,爬虫是从一个或多个初始页面的 URL[5],通过分析页面源文件的 URL,抓取新的网页链接,通过这些网页链接,再继续寻找新的网页链接,反复循环,直到抓取和分析所有页面。这是理想情况下的执行情况,根据现在公布的数据,最好的搜索引擎也只爬取整个互联网不到一半的网页。
         二、网络爬虫的分类
         网络爬虫作为一种网页抓取技术,其主要分为通用网络爬虫、聚焦网络爬虫两种类型。其中通用网络爬虫是利用捜索引擎,对网页中的数据信息进行搜索、采集与抓取的技术,通过将互联网网页下载到本地,来保证网络内容的抓取、存储与镜像备份。首先第一步是对网站 URL 低质进行抓取,解析 DNS 得到主机 IP 地址,并对相应的 URL 网页进行下载。第二步,对爬虫爬取的网页进行存储,利用搜索引擎抓取到原始页面,比较网页数据与用户浏览器 HTML 内容的相似性,来决定是否对网站信息进行继续爬行。最后,对搜索引擎爬虫抓取的信息进行处理,主要通过应用程序或脚本的执行,展开 HTML文件、索引文字内容的预处理,包括噪音、提取文字、中文分词、索引及链接、特殊文件等的处理。
而聚焦网络爬虫的抓取与执行流程,则比通用网络爬虫更加复杂,其作为“面向特定主题需求”的网络爬虫程序,可以在实时网页抓取的同时,对其中的海量数据信息进行筛选、处理。
         三、基于 python 网络爬虫设计的网页数据爬取
         1、网络爬虫的筛选
         (1) 正则表达式。Python 正则库中包含一系列的政策表达式,正则表达式是对字符串进行操作的公式,其会使用已经定义好的特定字符组成规则字符串,对网络爬取的关键数据信息进行筛选。因此利用正则表达式语法,对爬取到的不同内容使用特殊元素代替,可以完成对网页关键字、图片、视频等信息的搜索、爬取与分析。首先进行网页源代码、超链接的获取,之后借助于正则表达式,从超链接中筛选出所需要的内容,正则表达式的代码实现如下所示:

         (2)XPath 路径语言。XPath 是用来确定 XML 文档中某些内容的语言,其能够对树状结构的数据节点进行找寻、定位,以获取到 XML 文档中具有特定属性的元素内容。

而 lxml 库作为 Python 编程系统的第三方库,也支持对 XPath 规范中的 XML 文档标签,进行标签内容语言的提取与导航。在利用lxml 库进行 XML 文档节点、文本、属性、类别等寻找的过程中,需要将 lxml 库的数据信息导入至 etree 包,之后对网站中的文档、视频及音频进行爬取,保存至本地并在名称前加特殊符号。
         (3)Beautiful Soup。Beautiful Soup 是可以从 HTML 或XML 文件中,灵活方便的提取网页数据的 Python 库,其能够通过解析器处理网页导航、搜索、修改分析树等。Beautiful Soup 工具箱利用简单的代码,自动将输入文档转换为 Unicode 编码,抓取与筛选出用户需要的数据信息。Beautiful Soup 与 lxml 均为 python 解释器,可以运用 HTML 解析器等解析策略,完成网站数据的抓取、筛选操作。
         2、python 网络爬虫技术进行网页数据爬取
         (1)Python 及 requests 的安装。根据 Windows 或 macOS 操作系统,安装适合的 Python版本,安装完成后打开命令提示符窗口,输入 Python 后回车。之后进行 requests 库的安装,打开命令提示符窗口输入 PiP install requests 后回车,执行安装操作,然后将数据输入import requests 进行使用。
         (2)python 网络爬虫技术的网页爬取。网络爬虫对网站中数据信息的抓取实现,主要包括数据检索、数据抓取、数据分析等步骤,其作为搜索引擎的组成部分之一,可以主动提取网络页面中存在的数据内容。首先,数据检索与抓取。数据检索类似于搜索引擎的信息抓取,其能够利用 Python 解释型脚本语言,以及 requests 库的get方法,进行网络关键字、用户所需信息的检索与抓取,并在计算机屏幕中进行显示。这一过程需要使用 get方法,反复对 URL 地址队列的数据内容,进行抓取与解析操作,并将网页爬取的 URL 参数返回至 Request 对象。其次,数据分析。数据分析是对网络爬虫已经抓取的内容,进行所需数据信息的提取与分析操作,可用的库有lxml、beautifulsoup4、pyquery。这一过程中可以使用正则匹配,与网页 URL 地址建立连接,运用正则表达式 String regex=”\w+@\w+(\.\w+)+”,将提取的数据放入到集合中,完成对网络信息的多轮抓取、筛选与分析。如百度提取网站图片的爬虫代码及结果如下:

         3、网络爬虫技术的应用。网络爬虫技术是对网页中数据爬取、分析的技术,可以被应用到多种网络信息的检索、存储之中。如现实生活普通用户常常使用搜索引擎,包括 360、百度、谷歌等搜索技术,获取自身想要的网络数据信息,此外,其还在科学研究、Web安全、产品研发、舆情监控等领域得到广泛应用。首先对于不同专业学科的科学研究而言,大数据信息挖掘、机器学习、数字化图像处理等,都需要利用爬虫从网络中抓取数据。之后在网络购物、产品研发过程中,可以借助于网络爬虫技术,对不同商品的市场价格进行采集、比对,再研发出用户需要的、质优价廉的产品。最后,对于网站中数据传输、用户访问的舆情监控,可以通过抓取分析网站的数据来源、数据内容,识别网络中存在的浏览器、服务器攻击问题,以及某一用户是否为非法访问。由此可见,基于Python 编程语言的网络爬虫技术,可以被用于多种网站、网页数据的搜集中,通过分析爬虫搜集、拦截的数据信息,可以有效避免外来不明主体对网站服务器的攻击。
         参考文献:
         [1] 陈 琳 , 任 芳 . 基于 Python 的新浪微博数据爬虫程序设计 [J]. 信息系统工程 ,2017,9:(09).
         [2] 刘原铭,周立柱, 林玲. 聚焦爬虫技术研究综述 [J]. 计算机应用 ,2019(09):1965-1969.
投稿 打印文章 转寄朋友 留言编辑 收藏文章
  期刊推荐
1/1
转寄给朋友
朋友的昵称:
朋友的邮件地址:
您的昵称:
您的邮件地址:
邮件主题:
推荐理由:

写信给编辑
标题:
内容:
您的昵称:
您的邮件地址: