APP下载

Python爬虫获取网络图片

2018-05-28辽宁师范大学计算机与信息技术学院夏天琦

电子世界 2018年10期
关键词:爬虫网址网页

辽宁师范大学计算机与信息技术学院 夏天琦

1.网络爬虫

网络爬虫,是一种按照其指定的规则,对网络中的信息实现自动抓取的程序或者脚本,一般被称之为网络机器人或网页蜘蛛。网络爬虫是通过对浏览器访问网页的URL地址方式的模仿进行,使用者不需要手动操作即可自动地获取所需要的数据。

网络爬虫一般分为以下几种类型:通用网络爬虫(General Purpose Web Crawler)、聚焦网络爬虫(Focused Web Crawler)、增量式网络爬虫(Incremental Web Crawler)、深层网络爬虫(Deep Web Crawler)。本文对图片的爬取属于聚焦网络爬虫。

2.Python概述

在计算机程序设计语言中,Python语言是一种面向对象的解释性的语言,语法干净简单,代码整洁美观,最具特色的是它对于模块的界限。在Python语言中一个模块的界限是由每行的首字符的位置决定的,它强制用四个空格作为每级语句的缩进,增加缩进表示进入模块,而渐少缩进则表示退出模块,这与我们熟悉的C/C++,java语言用花括号{}定出模块的边界有显著差异。

Python语言进行爬虫的优点主要有以下两点:

(1)抓取网页本身的接口

相较与java,C/C++等其他静态编程语言,python对于网页文档接口的抓取更简单;相比与perl,PHP,这类的动态脚本语言而言,python有着urllib2包,其包含大量可以访问网页文档的API。

除此之外,因为我们是通过模拟浏览器的行为来抓取网页的,大多数网站对于爬虫技术是不支持的。这时我们就需要模仿user agent的行为编写适宜的请求,例如对用户登陆、session/cookie的存储和设置进行模仿。这些在python的外部库里都可以得以解决,如requests,multi-mechanize等。

(2)网页抓取后的处理

抓取到网页后我们要对其进行处理,像过滤html标签和提取文本信息之类的操作。而python的beautifulsoap库提供了许多实用的文档解决功能,可以用十分短的代码来完成大量文档的处理。

目前Python有2.X和3.X两个版本,两者在语法,编码,性能上有些许不同,本文的程序是在3.6的环境下调试完成的。

3.Python程序设计

(1)爬虫准备

requests库是一个常用于http请求的模块,通过对requests库的导入,在程序中可以更加便利的进行网页的爬取。re库包含Python语言的全部正则表达式功能,导入re库方便检查一个字符串是否与某种模式匹配,从而实现获取所需数据的目的。

(2)爬取图片

首先对外部输入的URL地址进行请求,事先了解其网页的编码方式,本文的实验网页编码为“utf-8”,然后在其的源程序中用正则表达式对定义好的数据格式进行字符串匹配,最后将匹配成功的网址变成字符串的形式存入字典中。

(3)存储图片

对外部输入的图片所在网址进行请求,用open()函数打开指定位置的文件,若无此文件则新建立,再将请求到的图片写入。因为我们要存入多张图片,所以指定的文件位置要定义成可变的模式,而图片为二进制文件,所以用response.content方式写入。

(4)主体函数

主体函数主要包括三个方面:一目标网页地址的获取,本文是采用确定的网页地址,也可以通过对网址的分析通过循环获取多个网页;二是对抓取图片函数的调用,对其传参即可;三是循环遍历字典中存入的图片网址,将其作为参数调用存储图片函数。

4.结语

通过对上述程序的运行便可以获取大量的图片了,实验是通过简单的例子让人们对Python的爬虫技术有个初步的了解,是适合初学者者的入门练习。实验结果表明本程序可以有效的实现爬虫功能,在短时间内迅速获取大量的图片,通过对程序中限定条件的更改和优化,我们可以实现各种数据的获取,如此便为数据分析和数据挖掘的工作者节省更多的搜索资料时间。

[1]白雪丽.浅析基于Python爬虫技术的特性及应用[J].山西科技,2018,33(02):53-55.

[2]刘子元.Python爬虫之高考作文[J/OL].电子技术与软件工程,2017(22):17-18[2018-05-01]

[3]郭丽蓉.基于Python的网络爬虫程序设计[J].电子技术与软件工程,2017(23):248-249.

[4]涂辉,王锋,商庆伟.Python3编程实现网络图片爬虫[J].电脑编程技巧与维护,2017(23):21-22.

[5]熊畅.基于Python爬虫技术的网页数据抓取与分析研究[J].数字技术与应用,2017(09):35-36.

猜你喜欢

爬虫网址网页
利用网络爬虫技术验证房地产灰犀牛之说
本刊网址变更通知
基于Python的网络爬虫和反爬虫技术研究
基于CSS的网页导航栏的设计
利用爬虫技术的Geo-Gnutel la VANET流量采集
基于URL和网页类型的网页信息采集研究
大数据环境下基于python的网络爬虫技术
网页制作在英语教学中的应用
本刊网址变更通知
本刊关于网址的郑重申明