批量下載網頁圖片html
urllib中的request中的urlretrieve方法,能夠下載圖片python
lxml用於解析網頁函數
requests用於獲取網站信息網站
import urllib from lxml import etree import requests
回調函數中,count表示已下載的數據塊,size數據塊大小,total表示總大小。url
在使用urllib中的request中的urlretrieve方法時,加入的回調函數,會在每次數據塊傳遞完畢時觸發,傳遞參數,可做爲下載進度使用。xml
def schedule(count,size,total): per=100.0*count*size/total if per>100: per=100 pass print('當前進度:',per) pass
經過request獲取圖片地址後,經過xpath語法,對全局查找img標籤,獲取其src屬性。即圖片地址htm
user_agent='Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0' headers={'User-Agent':user_agent} r=requests.get('https://www.ivsky.com/tupian/keaiertong_t19487/',headers=headers) html=etree.HTML(r.text) img_urls=html.xpath('.//img/@src')
歸併地址,命名文件路徑和文件名,設定回調函數,完成下載。blog
i=0 for img_url in img_urls: urllib.request.urlretrieve('http:'+img_url,'img'+str(i)+'.jpg',schedule) i+=1 print('finish')
import requests from lxml import etree import urllib def schedule(count,size,total): per=100.0*count*size/total if per>100: per=100 pass print('當前進度:',per) pass user_agent='Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0' headers={'User-Agent':user_agent} for i in range(10): r=requests.get('https://www.ivsky.com/tupian/daimaozi_de_meinv_v52173/pic_8185'+str(55+i)+'.html#al_tit',headers=headers) html=etree.HTML(r.text) url=html.xpath('.//*[@id="imgis"]')[0].xpath('./@src')[0] urllib.request.urlretrieve('http:'+url,'img'+str(i)+'.jpg',schedule)#download print('finish')