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

(整期优先)网络出版时间:2020-07-01
/ 2

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

史宏伟、侯沛英

中国铁路呼和浩特局集团有限公司信息技术所

内蒙古自治区呼和浩特市 010057

摘要:网络信息量的迅猛增长,从海量的信息中准确的搜索到用户需要的信息提出了极大的挑战。网络爬虫具有能够自动提取网页信息的能力。对现在流行的网络爬虫框架进行分析和选择,在现有框架的基础上设计了一种适合资源库建设的爬虫系统,利用爬虫的自动化特性完成教学资源库的内容获取及入库工作。同时,选用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 正则库中包含一系列的政策表达式,正则表达式是对字符串进行操作的公式,其会使用已经定义好的特定字符组成规则字符串,对网络爬取的关键数据信息进行筛选。因此利用正则表达式语法,对爬取到的不同内容使用特殊元素代替,可以完成对网页关键字、图片、视频等信息的搜索、爬取与分析。首先进行网页源代码、超链接的获取,之后借助于正则表达式,从超链接中筛选出所需要的内容,正则表达式的代码实现如下所示:

5efc571aa6ab2_html_f1a4ba2e7841afe2.png

(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+)+”,将提取的数据放入到集合中,完成对网络信息的多轮抓取、筛选与分析。如百度提取网站图片的爬虫代码及结果如下:

5efc571aa6ab2_html_a9766038e4bfb11b.png

3、网络爬虫技术的应用。网络爬虫技术是对网页中数据爬取、分析的技术,可以被应用到多种网络信息的检索、存储之中。如现实生活普通用户常常使用搜索引擎,包括 360、百度、谷歌等搜索技术,获取自身想要的网络数据信息,此外,其还在科学研究、Web安全、产品研发、舆情监控等领域得到广泛应用。首先对于不同专业学科的科学研究而言,大数据信息挖掘、机器学习、数字化图像处理等,都需要利用爬虫从网络中抓取数据。之后在网络购物、产品研发过程中,可以借助于网络爬虫技术,对不同商品的市场价格进行采集、比对,再研发出用户需要的、质优价廉的产品。最后,对于网站中数据传输、用户访问的舆情监控,可以通过抓取分析网站的数据来源、数据内容,识别网络中存在的浏览器、服务器攻击问题,以及某一用户是否为非法访问。由此可见,基于Python 编程语言的网络爬虫技术,可以被用于多种网站、网页数据的搜集中,通过分析爬虫搜集、拦截的数据信息,可以有效避免外来不明主体对网站服务器的攻击。

参考文献:

[1] 陈 琳 , 任 芳 . 基于 Python 的新浪微博数据爬虫程序设计 [J]. 信息系统工程 ,2017,9:(09).

[2] 刘原铭,周立柱, 林玲. 聚焦爬虫技术研究综述 [J]. 计算机应用 ,2019(09):1965-1969.