Python下載頁面圖片

來源:互聯網
上載者:User

今天要下載很多張圖片,手動麻煩,於是寫了個小程式。期間遇到不少問題。

最主要的一個是,訪問某些網頁會返回403 Forbidden,後來在加入了header資訊之後得到解決。記錄下。

這裡用到了正則,urllib網頁編程等知識。好久沒用了,算是複習。

代碼

# -*- encoding:UTF-8 -*-

import re,urllib2

def getPage(url):
'''下載檔案html代碼,找出一樓的核心代碼'''
opener = urllib2.build_opener()
#不加頭資訊則出現403錯誤和亂碼
opener.addheaders = [('User-agent', 'Mozilla/5.0')];
htmlAll = opener.open( url ).read()
reg1Floor = '<div class="msgfont">(.*?)</div>'
html = re.search(reg1Floor,htmlAll)
html = html.group()
#檔案儲存編碼和檔案編輯編碼都是utf-8,所以decode一次,不然會出現亂碼,但是不影響結果。
return html.decode('utf-8')

def getImg(url):
'''從核心代碼中照圖圖片地址,並且下載儲存、命名'''
regImg = '<img src="(.*?)" alt="" />'
dir = 'F:\\My_Document\\Desktop\\temp\\'
pageHtml = getPage(url)
#找到所有圖片地址
imglist = re.findall(regImg,pageHtml)
#print imglist
for index in xrange(1,len(imglist)+1):
finename = dir + str(index) + '.jpg'
urllib.urlretrieve(imglist[index-1], finename)
print finename + ' ok!'


if __name__ == '__main__':
getImg('http://topic.csdn.net/u/20101013/11/024465A6-8E16-444C-9A09-DD374D29044C.html')

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.