#要安裝bs4和request,用pip install from bs4 import BeautifulSoup import requests #用request下載網頁圖片 import urllib.request #放在函數定義 x = 0 #獲取豆瓣圖片 #參數賦值能夠不寫,也能夠傳個默認值1,但不能寫i變量,由於這時i還沒定義,兩個變量相等是不行的 def getDbImage(page = 1): #x = 0 #獲取網頁源代碼 #https://www.dbmeinv.com/?pager_offset=3 response = requests.get('https://www.dbmeinv.com/?pager_offset={}'.format(page)) html = response.text #返回200,說明請求成功 #print(response) #建立對象 用解釋器解釋網頁 也能夠用lxml等 soup = BeautifulSoup(html,'html.parser') #找到全部的img標籤,這個網頁只有咱們要的照片有img標籤,要看網頁狀況 girl = soup.find_all('img') #得到全部img標籤,這是個列表,能夠循環 #print(girl) #循環列表獲得每個標籤 for img in girl: #print(img) #得到全部的連接 link = img.get('src') #print(link) #x定義在函數內則不須要global,但每次循環x都會變回0,不利於文件命名,在這裏定義成全局變量 global x #下載圖片,也能夠用open,如今換個方法,urlretrieve(檢索)第一個參數爲連接,第二個參數是保存路徑,images文件夾下,後面是文件名 urllib.request.urlretrieve(link,'images/%s.jpg'%x) #每次循環修改文件名,每次遞增1, x += 1 #作個提示 print('正在下載第%s張圖片'%x) #獲取範圍頁數,好比前10頁 for i in range(1,11): print("正在下載第{}頁圖片".format(i)) #如今對比下網頁翻頁變化,能夠發現後面那個4能夠更改成變量 #https://www.dbmeinv.com/?pager_offset=3 #https://www.dbmeinv.com/?pager_offset=4 getDbImage(i) #函數須要變量接受i
除去註釋後簡約版代碼:html
from bs4 import BeautifulSoup import requests import urllib.request x = 0 def getDbImage(page = 1): response = requests.get('https://www.dbmeinv.com/?pager_offset={}'.format(page)) html = response.text soup = BeautifulSoup(html,'html.parser') girl = soup.find_all('img') for img in girl: link = img.get('src') global x urllib.request.urlretrieve(link,'images/%s.jpg'%x) x += 1 print('正在下載第%s張圖片'%x) for i in range(1,11): print("正在下載第{}頁圖片".format(i)) getDbImage(i)
效果以下:函數