python实现简单爬虫
现在网上的资源特别丰富,尤其是如果在看到某些网站上的好看的图片就会想要保存下来,但是很麻烦需要的一个一个点击下载,可是如果我们用程序来处理的话,问题将会变得非常简单,只需要运行程序就可以拿到整个网页上的所有图片。
下面我们可以看一下怎样用python实现一个简单的获取网页图片的的爬虫小程序。
一、第一步,怎样获取到整个page?
getPage.py
import urllib def getPage(url): page = urllib.urlopen(url) content = page.read() return content content = getPage("http://tieba.baidu.com/p/2510089409")
首先要导入urllib模块,此模块的作用是帮助我们通过url打开任意资源
urlopen(url, [,data])——根据url打开一个网页,根据参数区分post或者get
read():读取整个页面所有信息
二、如何只获取到图片?
savePhotos.py
import urllib import re def getPage(url): page = urllib.urlopen(url) content = page.read() return content def getPhotos(content): reg = r\'src="(.+?\.jpg)" pic_ext\' imgre = re.compile(reg) imglist = re.findall(imgre,content) x = 0 for imgurl in imglist: urllib.urlretrieve(imgurl,\'./photos/%s.jpg\' % x) x+=1 content = getPage("http://tieba.baidu.com/p/2510089409") print getPhotos(content)
正则表达式。这里我们用正则表达式来对获取到的网页信息进行过滤。
导入urllib和re模块
解析方法getPhotos.py中的语句
第一步:创建正则表达式的过滤规则;
第二步:编译正则表达式
第三步:将符合规则的文件即图片保存到imglist中
第四步:用urlretrieve()方法保存图片到本地。其中第二个参数设置保存文件位置。
这样就可以实现一个python的一个简单的获取网页图片的爬虫
爬到的图片 ,如下: