基于Python爬取视频的设计与实现

2021-06-02 23:46胡雅丽
通信电源技术 2021年3期
关键词:爬虫队列搜索引擎

胡雅丽

(山西青年职业学院 计算机与信息工程系,山西 太原 037000)

关键字:Python;网络爬虫;数据分析

0 引 言

近年来,随着互联网大数据、云计算以及人工智能等技术的迅猛发展,各行各业产生了大量的数据,其中数据的海量性、开放性以及实时性成为数据挖掘的主要特性。在数据共享的时代,人们如何获取到对自己有价值的数据已经成为炙手可热的话题,而搜索引擎以其独有的特点抓住了这次机会,可以极大可能地搜索到大量的网页。利用搜索引擎中重要的网络爬虫模块可以实现对网页中相关信息的自动搜集及定向采集,用户只需要在搜索引擎中输入关键字检索网页,一大批与之有关的网页信息就会被查找出来,而网络爬虫作为引擎的重要组成部分,在搜索网页中起着至关重要的作用。Python语言中提供了很多爬虫框架,利用Python语言爬虫数据变得更加高效,在一定程度上大大地节省了人力和物力资源[1]。

1 Python简介

Python是一门动态的、跨平台的、面向对象的以及解释型的计算机脚本语言,由于其代码规范简洁、关键字相对较少且说明文档很简单,容易上手,因此也被称为可执行的伪代码。它可以使人们只关心完成什么样的工作任务,而不是纠结于语法。它能够将用其他语言制作的各种模块很轻松地联结在一起,常被昵称为胶水语言,扩展性很强,可以调用C和C++等编写的程序,也可以在其他程序中使用,或对一些软件进行二次开发。另外,Python是开源的,它拥有非常多优秀的库,可以用于数据分析等。更重要的是,Python与开源大数据平台Hadoop具有很好的兼容性。

2 Python数据分析

数据的类型多种多样,通过Python数据分析人们可获知数据中的数量、用词以及发送时间。Python数据分析的主要目的就是将一大批隐藏的杂乱无章的数据信息提炼出来,找到其中的内在规律,帮助用户做出正确的判断,从而进行决策。其具有丰富和强大的库,能够处理很多工作,常用的类库有IPython、Pandas以及Spyder等。其中IPython能够提高编写、测试以及调试Python的速度,Pandas是Python数据分析的核心库,Spyder是一个强大的交互式Python语言开发环境[2]。一个完整的数据分析项目大致可分为5个流程,具体如图1所示。

图1 Python数据分析流程图

3 网络爬虫

3.1 简 介

网络爬虫的实质就是利用Python程序设计语言抓取网页内容。根据用户的需求,遵循一定的规则,自动抓取网页中有价值的数据[3]。在爬虫过程中,需要一个队列来存放获取网页数据的所有URL,从第一个初始的URL打开指定的网页,选择需要进行爬虫的内容,获取网页中源代码的全部链接信息,将获取到新的URL放置在URL队列中,只要用户爬虫数据的任务没有完成,这个过程将会一直执行下去,直到爬虫结束将其关闭[4,5]。

3.2 网络爬虫分类

网络爬虫一般分为通用和聚焦两种类型。其中通用类型的网络爬虫也称为全网爬虫,利用搜索引擎,爬取种子页面(百度、谷歌、雅虎等),继而通过并行方式爬取互联网上所有数据,主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份[6]。相比于通用网络爬虫,聚焦类型的网络爬虫则是面向特定主题需求的一种网络爬虫程序,是有针对性的爬取与主题相关的数据,过滤掉与主题无关的数据,节省了硬件和网络资源,页面更新快[7]。

3.3 工作机制

网络爬虫一般首先要找到需要爬取的网页URL,将这些种子URL加入到待抓取URL队列中,其次选择合适的爬虫工具从URL队列中取出待取URL,通过Python代码解析DNS得到主机的IP地址,并将URL对应的网页下载下来,最后将爬取的网页数据保存在数据库中。在爬取网页URL时,还会提取其他新的网页URL,此时需要将新提取出来的种子URL加入到待抓取URL队列中,再次解析DNS,从而进入下一个循环[8-10]。网络爬虫的工作机制如图2所示。

图2 网络爬虫的工作机制

4 爬取视频

4.1 导入Python类库

首先需要导入Python爬虫需要的类库,其中os库是标准库,用来完成基本的交互功能,requests库是第三方库,可以直接构建常用的get和post请求并发起,lxml和etree是通过xpath解析DOM树,urllib和request是负责打开浏览url内的html文本。导入Python类库为:

4.2 提取数据

利用User-Agent获取当前目标网站的Http协议中头部信息,提供当前浏览器类型、操作系统及版本、CPU类型、浏览器渲染引擎、浏览器语言、浏览器插件等信息的标识。具体为:

4.3 存储数据

存储数据的程序为:

4.4 创建主函数

创建主函数为:

5 结 论

目前,互联网上的数据多且复杂,用户想要在短时间内获取到有价值的数据很困难。本文针对某网站的视频进行爬取进行了简单的阐述,使用具有强大功能的Python语言在爬取视频时提供重要的支持,爬取的视频以mp4文件的形式保存在程序中指定的目录下,以极快的速度获得了想要的信息。

猜你喜欢
爬虫队列搜索引擎
利用网络爬虫技术验证房地产灰犀牛之说
Chrome 99 Canary恢复可移除预置搜索引擎选项
基于Python的网络爬虫和反爬虫技术研究
世界表情符号日
队列队形体育教案
队列里的小秘密
基于多队列切换的SDN拥塞控制*
基于Scrapy框架的分布式网络爬虫的研究与实现
谁抢走了低价机票
青春的头屑