您的位置:首页 > 编程语言 > Python开发

我的第一个Python小程序爬出网站图片

2017-04-18 10:00 357 查看

前言

对于为什么会学Python这个问题,自己一直也没弄明白,或许是心中一直向往成为一位爬虫选手,而不自知的就上了这条船吧。从开始接触Python到现在大概有两周多的时间了,把基础的知识大概都过了一下,通过学习慕课网Python视频,做出了第一个Python小程序,爬取其网站的jpg图片。因为这是我的第一个实战爬取别人网站的Python程序,也是刚入手Python写的一个非常简单的程序,特此记之。也算是正式开始Python之旅吧!

实战



如图这是爬取到慕课的实际图片。

直接看代码

python 3.5上的例子

urltest.py

import urllib.request
import re
import time

def getUrlInfo(url):
buf = ''
try:
info = urllib.request.urlopen(url)
buf = info.read()
except:
print ('url error:',url)
return buf

def saveImg(url, filename):
try:
f = open(filename, 'wb') #这里一样需要注意加了b,表示是二进制形式
buf = getUrlInfo(url)
f.write(buf)
except :
print ('file IO error:',url,'filename:',filename)
finally:
try:
f.close()
except:
print ('file don\'t exists')

def getImgList(url):
buf = getUrlInfo(url)
buf = buf.decode('utf-8') #Python3.0后需要注意的
list_url = re.findall(r'http:.*\.jpg', buf)
i = 0;
for img_url in list_url:
filename = str(i)+'.jpg'
print ('filename:',filename)
start = time.time()
saveImg(img_url, filename)
print ('user time:',(time.time()-start))
i += 1

getImgList('http://www.imooc.com/course/list')


python 2.7.12上的例子

urltest.py

import urllib2
import re
import time

def getUrlInfo(url):
buf = ''
try:
info = urllib2.urlopen(url)
buf = info.read()
except :
print ('url error:',url)
return buf

def saveImg(url, filename):
try:
f = open(filename, 'w')
buf = getUrlInfo(url)
f.write(buf)
except :
print ('file IO error:',url,'filename:',filename)
finally:
try:
f.close()
except:
print ('file don\'t exists')

def getImgList(url):
buf = getUrlInfo(url)
list_url = re.findall(r'http:.*\.jpg', buf)
i = 0;
for img_url in list_url:
filename = str(i)+'.jpg'
print 'filename:',filename
start = time.time()
saveImg(img_url, filename)
print 'user time:',(time.time()-start)
i += 1

getImgList('http://www.imooc.com/course/list')


总结

上面有两份代码,一份是3.5的,一份是2.7的,至于为什么会有两份的原因,就不多解释了。如果有同学要运行本代码,请根据自己的实际Python环境,选择相应的代码运行。这个总体上来说还是非常简单的,也不详细的介绍了,只做代码记录了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: