一、url= http://www.mzitu.com/74100/x,2爲1到23的值html
二、用到模塊 os 建立文件目錄; re模塊正則匹配目錄名 圖片下載地址; time模塊 限制下載時間;requests模塊獲取網頁源代碼;urllib模塊 urllib.urlretrieve(圖片url,保存的帶擴展名的文件名x.jpg)方法下載圖片函數
三、知識點 文件目錄處理 函數封裝調用 全局變量url
四、代碼spa
# -*- coding:utf8 -*- import os import re import requests as rq import urllib import time # 建立目錄函數 保存文件位置 def create_catename(): # 取出網頁的上層目錄名稱 url = urls[0] html = rq.get(url).text cate_name = re.findall(r'<a href="http://www.mzitu.com/xinggan" rel="category tag">(.*?)</a>', html)[0] path = 'D:\\%s' % cate_name return path # 下載圖片 定義n爲全局變量 以n計數爲圖片的文件名n.jpg 定義n全面變量 以避免for循環時候上次循環n的值被從新賦值 def getimg(): global n n = 1 for url in urls: html = rq.get(url).text regex = re.compile('<img src="(.*?.jpg)" alt=') img_url = re.findall(regex, html)[0] #urllib.urlretrieve(img_url, '%s.jpg' % n) ,此處爲Python2.7 寫法 urllib.request.urlretrieve(img_url, '%s.jpg' % n) #prython3.6寫法 n += 1 # main函數 調用上面的兩個函數 urls是個全局變量 取23張頁面 下載23張圖 def main(): global urls urls = ['http://www.mzitu.com/74100/{}'.format(str(i)) for i in range(1, 24)] path = create_catename() # 建立文件目錄 os.mkdir(path) # 切換到該目錄 os.chdir(path) time.sleep(2) getimg() main()