初学python,部分代码来自网络,如有错误欢迎大神指点。
#-*- encoding:utf-8 -*-
import urllib
import urllib.request
import re
#打开网页下载器
def open_html(url):
require = urllib.request.Request(url) #使用request()来创建请求对象
reponse = urllib.request.urlopen(require)# 传入对象获取页面
html = reponse.read() #通过read()读取页面
return html #返回一个读取到的网页对象
#下载图片
def load_image(html):
regx = 'img.akqipai.com[\S]*jpg' #用正则匹配,需要抓取的图片地址
pattern = re.compile(regx) #编译正则表达式模式,返回一个对象
get_image = re.findall(pattern,repr(html))
#repr()函数将对象转化为供解释器读取的形式,通过传入正则和网页对象,返回元组,内含匹配的值
print(len(get_image)) # 自己加的,看提前看下有多少张图片
num = 1
for img in get_image:#循环读取匹配的值
img = 'https://' + img #添加头部字符串。
photo = open_html(img) #再次读取仅包含图片的网址
with open(r'E:\py\%s.jpg'%num,'wb') as f:
print('开始下载图片')
f.write(photo) #保存图片
print ('正在下载%s张图片'%num)
f.close()
num = num +1
if num>1:
print('下载成功!!!')
else:
print('下载失败!!!')
url = 'http://www.80s.la/' #传入需要爬取的网址
html = open_html(url) #打开网址获取网页对象
load_image(html) #下载图片