環境:windows 7 64位;python2.7;IDE pycharm2016.1 功能: 批量下載百度貼吧某吧某頁的所有帖子中的所有圖片 使用方法: 1.安裝python2.7,安裝re模塊,安裝urllib2模塊 2.複製以下源代碼保存為tbImgiDownloader.py文件 3.打開 ...
環境:windows 7 64位;python2.7;IDE pycharm2016.1
功能:
批量下載百度貼吧某吧某頁的所有帖子中的所有圖片
使用方法:
1.安裝python2.7,安裝re模塊,安裝urllib2模塊
2.複製以下源代碼保存為tbImgiDownloader.py文件
3.打開某個貼吧並複製其網址
4.打開文件tbImgiDownloader.py在第37行的單引號中輸入網址,保存
5.雙擊tbImgiDownloader.py
說明:
1.本程式每次可以下載大概50個貼子中的圖片
2.圖片名字自動保存為時間+位序
3.如若不能運行,歡迎咨詢
4.複製源碼時註意別複製行號(我就這樣做過-_-|||)
5.覺得好用的同學別忘了點推薦哦!
1 #! /usr/bin/env python 2 #coding=utf-8 3 4 import re,time 5 import urllib2,urllib 6 7 8 def tiebaImgiDownloader(url): 9 ''' 10 貼吧jpg格式圖片下載器: 11 形式參數某吧某帖子的url地址 12 運行後將保存圖片到本目錄 13 ''' 14 15 pattern = r'img class="BDE_Image" .*?src="(.*?jpg)"'#待爬取鏈接的正則表達式 16 fstr = urllib2.urlopen(url).read()#讀取帖子網頁源代碼為str傳給fstr 17 urllist = re.findall(pattern,fstr)#爬取所有與正則表達式匹配的jpg鏈接,並保存在urllist中 18 urllist = list( set(urllist) ) 19 20 print '總共爬取%d個圖片鏈接'%len(urllist),'\n' 21 22 i = 1 23 for furl in urllist: 24 timestr = time.strftime('%Y%m%d%H%M%S') 25 urllib.urlretrieve(furl,timestr+'0%d.jpg'%i)#逐個下載圖片,並命名為當前時間+序數 26 print '已保存圖片',timestr+'0%d.jpg\n'%i 27 i+=1 28 29 print '圖片下載完畢!\n\n\n' 30 31 return True 32 33 34 def __main__(): 35 print '\n\t\t\t歡迎使用貼吧jpg格式圖片下載器!\n' 36 37 html = urllib.urlopen('').read() # 讀取某吧某頁的網頁源代碼 。。。。。。。。。。。。。。。。。粘貼網址區。。。。。。。。。。。。。。。。。。。。。。。。。。。。 38 '''網址示例 39 1.http://tieba.baidu.com/f?kw=%BE%CF%E6%BA%B5t&fr=ala0&loc=rec小鞠 40 2.http://tieba.baidu.com/f?kw=%E9%9E%A0%E5%A9%A7%E7%A5%8E&ie=utf-8&pn=200小鞠 41 3.http://tieba.baidu.com/f?kw=%E5%A3%81%E7%BA%B8&ie=utf-8&tab=good精品壁紙 42 ''' 43 pattern = r'a href="(.p.[0-9]*)"' # 待爬取二級網頁網址的正則表達式 44 urllist = re.findall(pattern, html) # 抓取所有二級網頁網址,返回list 45 urllist = list(set(urllist)) # 刪除重覆的二級網頁網址 46 preurl = r'http://tieba.baidu.com' # 二級網頁網址的首碼網址 47 print '抓取%d個二級網頁\n'%len( urllist ) 48 49 for urlOne in urllist: 50 tiebaImgiDownloader(preurl + urlOne) # 下載二級網頁中的圖片 51 52 return 0 53 54 55 if __name__ == '__main__': 56 __main__()
後記:此文是本人原創,轉載請註明出處,謝謝合作